1
Цикл с постусловием
Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым например, с условного перехода).
2
Цикл с постусловием отличается от цикла while тем, что условие в нём проверяется после выполнения цикла, то есть этот цикл будет повторён как минимум один раз (в отличие от цикла while, который может вообще не выполняться). Синтаксис цикла
1 do {
2 тело цикла
3 } while(условие);
Предыдущий пример с использованием цикла do будет выглядеть как
1 int i = 0;
2
3 do {
4 printf("%d\n", i);
5 i++;
6 } while(i < 10);
3
Сложные которым нужен ответ в 5-10 строчек
И лёгкие которым ответ содержит в 2-4 строчек
Объяснение:
Допустим, в языке есть встроенная функция
Min(a,b) которая определяет мин из двух значений. Тогда алгоритм выглядит так
х=Мin(a,b);
x=Min(x,c);
А если нужно найти мин из N чисел, которые запрятаны в массив А(n), то так
x=999999999999999999999; // какое-то ОЧЕНЬ большое число
Для ц=1 по N цикл
x = Min(x,A(ц));
КонецЦикла;
А что, если такой функции в языке нет, спросишь ты, тогда её нужно написать самому, например, так
Функция Min(a,b)
Если a<b Тогда
Возврат(а);
Иначе
Возврат(b);
КонецЕсли;
КонецФункции
Вот и всЁ! Учитесь мыслить алгоритмически структурно, разбивая сложный алгоритм на ряд простых и понятных, и всё будет очень просто.
Успехов!
Поделитесь своими знаниями, ответьте на вопрос:
Известен рост каждого ученика группы. рост мальчиков задан отрицательными числами. верно ли, что средний рост мальчиков не превышает рост девочек более чем на 10 см? написать программу на free pascal.
nn=50; // максимальное количество учеников
var
i,n,sm,sd,km,kd:integer;
am,ad:real;
var a:array[1..nn] of integer;
begin
Write('Введите количество учеников: ');
Read(n);
Writeln('Введите рост учеников');
sm:=0; sd:=0; km:=0; kd:=0;
for i:=1 to n do
begin
Read(a[i]);
if a[i]>0 then begin sd:=sd+a[i]; Inc(kd) end
else begin sm:=sm-a[i]; Inc(km) end
end;
am:=sm/km; ad:=sd/kd;
Write('Средний рост мальчиков (',am:0:1,') ');
if am-ad<=10 then Write('не ');
Writeln('превышает средний рост девочек (',ad:0:1,') ');
Writeln('больше, чем на 10 см')
end.
Примерное решение
Введите количество учеников: 9
Введите рост учеников
-192 165 -174 179 -172 171 169 170 -170
Средний рост мальчиков (177.0) не превышает средний рост девочек (170.8)
больше, чем на 10 см