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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2013, 20:49   #1
perec200
Новичок
Джуниор
 
Регистрация: 20.04.2012
Сообщений: 2
По умолчанию Поясните задачу с циклом, всё решено не понимаю что откуда берётся

Здравствуйте, буду рад помощи.
Задача:
"Известен рост каждого человека из группы. На сколько рост самого высокого превышает рост самого маленького?"
Решение:
Код:
program test;
uses crt;
var n,i,a,max,min:longint;
begin
clrscr;
writeln('vvod n');
readln(n);
max:=0;
min:=300;
for i:=1 to n do
begin
writeln ('vvod',i,'post');
readln(a);
if a>max then max:=a;
if a<min then min:=a;
end;
writeln('max-min=',max-min);
readln;
end.

Последний раз редактировалось Serge_Bliznykov; 18.10.2013 в 10:04.
perec200 вне форума Ответить с цитированием
Старый 17.10.2013, 21:59   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Код:
program test;
uses crt;
var n,i,a,max,min:longint;
begin
clrscr;
writeln('vvod n'); {размер группы}
readln(n);
write('Vvodim rost (sm): '); {запрос размера для первого}
readln(a);
max:=a; {нач. значения для max}
min:=a;  {и min}
for i:=1 to n - 1 do {запрос размера для остальных}
begin
   write('Vvodim rost (sm): ');
   readln(a);
   if a>max then max:=a; {проверяем на max}
   if a<min then min:=a;  {и min}
end;
writeln('max - min= ', max-min); {Сообщаем о разнице}
readln;  {Это для того, что-бы увидеть на экране, а не жать Alt + F5}
end.
И что?
...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 18.10.2013, 00:34   #3
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Цитата:
for i:=1 to n - 1 do {запрос размера для остальных}
Код:
for i:=1 to n  do {запрос размера для остальных}
Начинаем же не с нуля...
В чём проблема та? зачада решена верна...
Dozent вне форума Ответить с цитированием
Старый 18.10.2013, 20:17   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Dozent
Цитата:
В чём проблема та? зачада решена верна...
1. Попросили прокоментировать.
2. Принятая в задаче инициализация верна только для этого конкретного случая. Мы достаточно точно можем определить диапазон значений для роста. Предложенный мной порядок подразумевает, что параметры первого человека используются для инициализации min и max.
Таким образом, в цикле вводятся данные для остальных и этих данных уже на одного чела меньше.
И вообще, брать значения для инициализации начальных значений с потолка, в моём понимании, вредное занятие.

Да. Задача решена верно, но ...


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не понимаю откуда? Droniwe Работа с сетью в Delphi 0 30.03.2012 22:38
WPARAM wParam, LPARAM lParam откуда берётся? Garic_ Общие вопросы C/C++ 4 09.06.2010 22:42
помогите пожалуйста я что то не понимаю в чём тут ошибка? я уже всё перепробовал worshewitin Помощь студентам 1 29.06.2009 15:49
Поясните что с циклом for? Mikhail Bakurov Общие вопросы Delphi 9 19.06.2009 01:58
Поясните откуда ошибка? Hegel Помощь студентам 8 12.01.2009 07:39