Вернуться   Компьютерный форум > Компьютеры > Программы > Программирование
 
 
Опции темы
Старый 01.12.2009, 23:24   #1 (ссылка)
Стажёр
 
Регистрация: 16.02.2009
Сообщений: 1,984
Репутация: 129
По умолчанию Pascal нужна помощь, совсем запутался (

Часть II
Задание: Написать программу с использованием трех операторов цикла: арифметического, предусловием и постусловием. Программа должна выводить на экран (при одинаковых начальных параметрах) три ответа: первый - полученный с помощью арифметического оператора, второй - с помощью оператора цикла с предусловием и третий - с помощью оператора цикла с постусловием.
Написать программу, которая по заданному натуральному значению вычисляет результат выражения:



пытался сделать, получилось вот что,


Program lab522;
Var i,n : integer;
p : real;
Begin
Write('n=');
ReadLn(n);
i:=1;

For i:= 1 to n do
begin
p:=(2*n)/(2*n+1);
end;
WriteLn('при n=',n, ' значение выражения= ', p);

While i<=n do
begin
p:=(2*n)/(2*n+1);
end;
WriteLn('при n=',n, ' значение выражения= ', p);

Repeat
p:=(2*n)/(2*n+1);
Until i>n;
WriteLn('при n=',n, ' значение выражения= ', p);

End.



что тут неправильно?? выложите плиз правильный код,заранее благодарю
ZONDO вне форума  
Старый 02.12.2009, 00:06   #2 (ссылка)
Новичок
 
Аватар для Макаревич
 
Регистрация: 23.11.2009
Сообщений: 413
Репутация: 30
По умолчанию

Цитата:
Сообщение от ZONDO Посмотреть сообщение
While i<=n do
begin
p:=(2*n)/(2*n+1);
end;
WriteLn('при n=',n, ' значение выражения= ', p);
где Вы изменяете переменную "i"
должно быть так:
begin
p:=(2*n)/(2*n+1);
i:=i+1;
end;
WriteLn('при n=',n, ' значение выражения= ', p);
без указанного мной действия программа должна циклиться
Макаревич вне форума  
Старый 02.12.2009, 00:19   #3 (ссылка)
Стажёр
 
Регистрация: 16.02.2009
Сообщений: 1,984
Репутация: 129
По умолчанию

а где тогда while 0o?
ZONDO вне форума  
Старый 02.12.2009, 00:45   #4 (ссылка)
Эксперт
 
Аватар для Гризлик
 
Регистрация: 08.09.2009
Сообщений: 10,716
Репутация: 960
По умолчанию

Если я еще правильно помню школный курс по Паскалю
Код:
Program lab522;
Var i,n : integer;
p : real;
Begin
Write('n=');
ReadLn(n);
i:=0;
For i:=i+1 to n do
begin
p:=(2*n)/(2*n+1);
end;
WriteLn('при n=',n, ' значение выражения= ', p);
i:=0;
While i>=n do
begin
i:=i+1;
p:=(2*n)/(2*n+1);
end;
WriteLn('при n=',n, ' значение выражения= ', p);
i:=0;
Repeat
i:=i+1;
p:=(2*n)/(2*n+1);
Until i>n;
WriteLn('при n=',n, ' значение выражения= ', p);
End.
Гризлик вне форума  
Старый 02.12.2009, 00:47   #5 (ссылка)
Стажёр
 
Регистрация: 16.02.2009
Сообщений: 1,984
Репутация: 129
По умолчанию

спасибо.....всем за помощь, я в школе это не учил,а щас проблемы с этим)
ZONDO вне форума  
Старый 08.12.2009, 10:00   #6 (ссылка)
Стажёр
 
Регистрация: 16.02.2009
Сообщений: 1,984
Репутация: 129
По умолчанию

сказали неправильно сделано,а именно неправильно составлено выражение :

p:=(2*n)/(2*n+1);

исходные данные в начале темы,прошу помощи)
ZONDO вне форума  
Старый 08.12.2009, 11:21   #7 (ссылка)
Эксперт
 
Аватар для Гризлик
 
Регистрация: 08.09.2009
Сообщений: 10,716
Репутация: 960
По умолчанию

ZONDO,Ну да. Забыл. Сложение также как и вычитание иммет приоритет над умножением или делением P:=(2*n)/((2*n)+1).
Гризлик вне форума  
Старый 08.12.2009, 16:27   #8 (ссылка)
Эксперт
 
Аватар для Гризлик
 
Регистрация: 08.09.2009
Сообщений: 10,716
Репутация: 960
По умолчанию

Хотя нет..Эт тоже неверно... Здесь помудрее формула должна быть
Гризлик вне форума  
Ads
Старый 08.12.2009, 19:26   #9 (ссылка)
Стажёр
 
Регистрация: 16.02.2009
Сообщений: 1,984
Репутация: 129
По умолчанию

вот:

Program lab522;
Var i,n : integer;
p : real;
Begin
Write('n=');
ReadLn(n);

p:=1;
i:=1;
For i:=1 to n do
begin
p:=(2*i)/(2*i+1)*p;
i:=i+1;
end;
WriteLn('при n=',n, ' значение выражения= ', p);

p:=1;
i:=1;
While i<=n do
begin
p:=(2*i)/(2*i+1)*p;
i:=i+1;
end;
WriteLn('при n=',n, ' значение выражения= ', p);

p:=1;
i:=1;
Repeat
p:=(2*i)/(2*i+1)*p;
i:=i+1;
Until i>n;
WriteLn('при n=',n, ' значение выражения= ', p);

End.



с while и repeat нормально, а вот for считает не правильно....думаю над этим второй час
ZONDO вне форума  
Ads
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь Александр Горбачёв Железо 4 05.12.2010 13:40
нужна помощь!!! moon11954 Железо 22 16.08.2010 10:07
Что делать если денег совсем нету, но срочно нужна хорошая видеокарта??? Никита_1 Железо 14 15.03.2010 09:19
Нужна помощь!!! Muctuk Железо 1 25.03.2009 22:17
Нужна помощь zik3000 Железо 21 16.02.2009 21:26
Нужна помощь!!! FAST Железо 2 06.02.2009 11:56
Нужна помощь в DSL ANARHIST Интернет и сети 1 15.01.2009 10:41
Нужна помощь Романыч Я Периферия 1 06.01.2009 18:36
нужна помощь Vados Железо 5 05.01.2009 23:43
Нужна помощь!!! oxygenius14 Игры 2 04.01.2009 03:12
нужна помощь!!! 555maykl Железо 1 01.10.2008 03:05


Текущее время: 11:41. Часовой пояс GMT +4. Powered by vBulletin® Version 5.8.9
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.