Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2009, 21:03   #1
Nikolai17
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 20
Вопрос Нужна помощь в создании программы на while и repeat

Циклические программы
Цель работы: освоить приемы программирования циклических алгоритмических структур while… do и repeat …until.

Задание 1.
Реализовать два варианта программы: с использованием цикла while и с использованием цикла repeat;

Собсно сама задача

Составить программу вычисления суммы n первых членов арифметической прогрессии, если а1=1, d=3.

Цитата:
program Exes;
uses crt;
var x,n:integer;
begin
clrcsr;
writeln('Enter (n) ');
readln('n');
while
Не могу понять как тут писобачить while


вот еще формула
Цитата:
s = (2 * a + d * (n - 1)) / 2 * n

Последний раз редактировалось Nikolai17; 17.10.2009 в 21:44. Причина: Неточность
Nikolai17 вне форума Ответить с цитированием
Старый 18.10.2009, 11:51   #2
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

Хех, тут логичнее for использовать. Но если они просят while... Берем, инициализируем i нулем. Ставим условие i<=n, в цикле сначала увеличиваем i на 1, затем s:=s+(формула для вычисления i-го члена прогрессии). Все. Что это за формула там дана можно было пояснить; для чего изучать циклы можно было не писать. А в repeat условие нужно поменять на i<n. Почему - читайте определения циклов.
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 18.10.2009, 12:04   #3
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
s:=0
i:=1;
d:=3;
k:=1;
while k<=n do
begin
s:=s+i;
inc(i,d);
inc(k);
end;
writeln(s);
Код:
s:=0
i:=1;
d:=3;
k:=1;
repeat 
s:=s+i;
inc(i,d);
inc(k)
until k>n;
writeln(s);
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 18.10.2009, 12:28   #4
Nikolai17
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 20
По умолчанию

Огромное спасибо парни а то я мудился
Цитата:
program Exes;
uses crt;
var s,a,d,n,i:integer;
begin
clrscr;
a:= 1;
d:= 3;
i:= 1;
s:=0;
writeln('Enter (n) ');
readln(n);
while i <= n
do begin
s:= (2 * a + d * (n - 1)) / 2 * n

writeln(s)

end.

Последний раз редактировалось Nikolai17; 18.10.2009 в 12:33.
Nikolai17 вне форума Ответить с цитированием
Старый 18.10.2009, 12:30   #5
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
Огромное спасибо парни а то я мудился
вот так вот вся слава мужикам!!!
тока у меня 2 вопроса:
1 для чего в вашей проге while?
2 зачем вы выводите n a не s
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 18.10.2009, 12:32   #6
Nikolai17
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 20
По умолчанию

только что с другом заметили.....я мудак
Nikolai17 вне форума Ответить с цитированием
Старый 18.10.2009, 12:35   #7
webs77
Новичок
Джуниор
 
Регистрация: 18.10.2009
Сообщений: 1
По умолчанию

Помогите пожалуйста с решением задачи:
Составить программу вычисления произведения нечетных чисел, меньших 16.C использованием цикла while и с использованием цикла repeat
webs77 вне форума Ответить с цитированием
Старый 18.10.2009, 12:36   #8
Nikolai17
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 20
По умолчанию

а что такое inc
Nikolai17 вне форума Ответить с цитированием
Старый 18.10.2009, 12:39   #9
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

inc(k) это k:=k+1;
inc(i,d) это i:=i+d;

2 webs77
Код:
p:=1
i:=1;
while i<16 do
begin
p:=p*i;
inc(i,2);
end;
writeln(p);
Код:
p:=1
i:=1;
repeat 
p:=p*i;
inc(i,2);
until i>16;
writeln(p);
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 18.10.2009 в 12:42.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 18.10.2009, 17:27   #10
Nikolai17
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 20
По умолчанию

все ....разобрался
Код:
program ef;
uses crt;
var 
a,d,k,s,n:real;
begin
textcolor(black);
textbackground(white);
clrscr;
writeln('Enter n');
readln(n);
a:=1;
d:=3;
k:=1;
while k<=n do
begin
s:= (n*(2 * a + d * (n - 1))) / 2 ;
k:=k+1;
end;
writeln('Summa ravna = ' ,s:4:2);
readkey;
end.
Nikolai17 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь в создании проекта elpilasgsm Общие вопросы C/C++ 15 09.04.2009 11:36
Нужна помощь в создании программы xaker_sokol Общие вопросы Delphi 1 01.03.2009 01:21
Нужна помощь в создании программы... Gangster Общие вопросы Delphi 16 24.05.2008 14:42
Очень нужна помощь в создании программы lutdan Фриланс 3 08.01.2008 19:08