Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Простые числа на Си++

Ответить
Настройки темы
Простые числа на Си++

Новый участник


Сообщения: 42
Благодарности: 0

Профиль | Отправить PM | Цитировать


Мне уже помагогали на этом замечательном форуме. Пожалуйста помогите ещё раз. Надо Составить программу на Си++ как консольное приложение, выводящую на экран n первых простых чисел. Сделать проверку n ≥0.
Простым наз-ся число p,большее 1 и не имеющее положительных целых делителей,кроме 1 и p

Отправлено: 15:07, 11-03-2007

 

Новый участник


Сообщения: 42
Благодарности: 0

Профиль | Отправить PM | Цитировать


Компилятор ошибку выдаёт.Помогите найти.
#include <math.h>
#include <conio.h>
#include <iostream.h>
int main(int argc, char *argv[])
{
using namespace std;
double dn,di,dj;
bool dest;
clrscr;
cout << "\nVvedite konechnoe chislo n= ";
cin >> dn;
i=1;
while
i<=n-2 do {
i=i+2;
est:=false;
for j=3 to round(sqrt(i)) do {
if i mod j = 0 then begin
est:=true;
break;
}
}
if not est then
cout << "Result: i=" << di;
}

Последний раз редактировалось nemo555, 11-03-2007 в 19:06.


Отправлено: 17:37, 11-03-2007 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Какую именно ошибку?

Вместо := используйте =, не в Паскале пишите все таки)

Отправлено: 17:51, 11-03-2007 | #3


Новый участник


Сообщения: 42
Благодарности: 0

Профиль | Отправить PM | Цитировать


[C++ Error] Unit1.cpp(12): E2451 Undefined symbol 'i'
[C++ Error] Unit1.cpp(14): E2376 While statement missing (

Отправлено: 19:07, 11-03-2007 | #4


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Цитата:
Простым наз-ся число p,большее 1 и не имеющее положительных целых делителей,кроме 1 и p
Полагаю, что программисты знают об этом...

Мне лениво исправлять всё, но кое что:
1. По поводу "Неопределённый символ i": нужно объявить переменную. Видимо, при объявлении double dn,di,dj; лучше написать double n, i, j; Всё же эти переменные используются в дальнейшем.
2. while i<=n-2 do { ... }
Лучше писать while (i<=n-2) { ... }. Это ж не паскаль, как говорит XCodeR.
3. for j=3 to round(sqrt(i)) do { ... }
Пишем: for (j=3; j<round(sqrt(i)); j++) { ... }
Я не уверен насчёт round(sqrt(i)), но сначала исправьте то, что предлагается.
4. if not est then
Так: if (!est) { ... }
5. cout << "Result: i=" << di;
Раз переменные переименовали и разпереименовывали, нужно писать в конце i;
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:47, 11-03-2007 | #5


Новый участник


Сообщения: 42
Благодарности: 0

Профиль | Отправить PM | Цитировать


CouttyXCodeR спасибо вам.Дело пошло.Мне просто непривычен синтаксис си++ - только начал изучать.Вот что вышло:
#include <math.h>
#include <conio.h>
#include <iostream.h>
int main(int argc, char *argv[])
{
using namespace std;
double n,i,j;
bool est;
clrscr;
cout << "\nVvedite konechnoe chislo n= ";
cin >> n;
i=1;
while (i<=n-2) do {
i=i+2;
est=false;
for (j=3; j<round(sqrt(i)); j++) //тут я не уверен - что то наворочено
if i mod j = 0 then begin
est:=true;
break;
}
}
if (!est)
cout << "Result: i=" << i;
getch();
return 0;
}
Вот список ошибок:
[C++ Error] Unit1.cpp(16): E2268 Call to undefined function 'round'
[C++ Error] Unit1.cpp(17): E2376 If statement missing (
[C++ Error] Unit1.cpp(21): E2308 do statement must have while
[C++ Warning] Unit1.cpp(21): W8004 'est' is assigned a value that is never used
[C++ Error] Unit1.cpp(22): E2040 Declaration terminated incorrectly
[C++ Error] Unit1.cpp(25): E2040 Declaration terminated incorrectly
[C++ Error] Unit1.cpp(26): E2190 Unexpected }

Отправлено: 20:25, 11-03-2007 | #6


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Цитата:
[C++ Error] Unit1.cpp(17): E2376 If statement missing (
Цитата:
if i mod j = 0 then begin
условие заключаем в скобки...
и...кхм... синтакиси вообще такой:

if(условие)
{
}
никаких begin...end & then
Цитата:
[C++ Error] Unit1.cpp(21): E2308 do statement must have while
Цитата:
while (i<=n-2) do {
уберите do
Цитата:
[C++ Warning] Unit1.cpp(21): W8004 'est' is assigned a value that is never used
est объявлена, но нигде не используется.
Цитата:
[C++ Error] Unit1.cpp(26): E2190 Unexpected }
лишний } где-то.

имхо, лучше используйте Pascal, кажется он вам "роднее"...
а то что делаете вы, это тоже самое что приехать во Францию и в магазине попросить "La 2 СОСИСКИ, please!".
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:54, 11-03-2007 | #7


Новый участник


Сообщения: 42
Благодарности: 0

Профиль | Отправить PM | Цитировать


Теперь вот:
#include <math.h>
#include <conio.h>
#include <iostream.h>
int main(int argc, char *argv[])
{
using namespace std;
double n,i,j;
bool est;
clrscr;
cout << "\nVvedite konechnoe chislo n= ";
cin >> n;
i=1;
while (i<=n-2) {
i=i+2;
est=false;
for (j=3; j<round(sqrt(i)); j++)
if (i mod j = 0) {
est:=true;
break;
}
}
if (!est)
cout << "Result: i=" << i;
getch();
return 0;
}
------------------------------------------------------------------------
[C++ Error] Unit1.cpp(16): E2268 Call to undefined function 'round'
[C++ Error] Unit1.cpp(17): E2377 If statement missing )
Вобщем надо что-то с round делать и 2-я ошибка указывает на if (i mod...

Последний раз редактировалось nemo555, 11-03-2007 в 21:17.


Отправлено: 21:10, 11-03-2007 | #8


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


nemo555
используй
double ceil(double x); в меньшую сторону
или
double floor(double x); в большую сторону
или
RoundTo(const double AValue, int ADigit); округление до знака ADigit после запятой.

Отправлено: 23:06, 11-03-2007 | #9


Аватара для Arrest

runs with scissors


Сообщения: 642
Благодарности: 77

Профиль | Отправить PM | Цитировать


PHP код: Выделить весь код

#include <math> //может так? если уж using namespace std;

#include <conio>
#include <iostream>
int main(int argcchar *argv[])
{
    
using namespace std;
    
double nij;
    
bool est;
    
clrscr;
    
cout << "\nVvedite konechnoe chislo n= ";
    
cin >> n;
    
1;
    while (
<= 2)
    {
        
2;
        
est false;
        for (
3round(sqrt(i)); j++)
        {
            if (
== 0//mod кажется меняется на % (если я что-то помню), а = на ==, если это конечно не присваивание :)
            
{
                
est == true;
                break;
             }
         }
     }
     if (!
est//насчет этого куска кода у меня сомнения: он наверное должен быть после каждой проверки числа, в whil'е.
     
cout << "Result: i=" << i;
     
getch();
     return 
0;


P.S. Отступы нужны коду - без них он превращается в нечитабельное месиво.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:09, 11-03-2007 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Простые числа на Си++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
SQL Lite простые манипуляцыи с БД andr_mozg AutoIt 3 07-08-2009 12:55
Простые правила PF kryo Общий по FreeBSD 3 13-06-2007 18:27
2 простые утилиты по сетям!!! Who??? Syoga Программирование и базы данных 15 11-06-2007 14:10
Новичок. Простые вопросы. Grub Вебмастеру 7 28-04-2007 15:41
Простые вопросы. Unixman Общий по Linux 11 17-07-2003 03:04




 
Переход