РЕШИТЬ В ПРОГРАММЕ ПАСКАЛЬ
1.На вход поступают положительные и отрицательные числа. Ввод
осуществляется до тех пор, пока не будет введен нуль. Найти сумму всех
введенных чисел с клавиатуры, а также количество неотрицательных чисел
(см. пример на слайде 4).
2. Напишите программу, которая в последовательности натуральных чисел
определяет сумму всех чисел, кратных 5. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Программа должна вывести одно число: сумму
всех чисел, кратных 5. (см. пример на слайде 8).
3.Напишите программу, которая в последовательности натуральных чисел
определяет количество всех чисел, оканчивающихся на 3. Программа получает на вход натуральные числа, количество введённых чисел неизвестно,
последовательность чисел заканчивается числом 0 (0 — признак окончания
ввода, не входит в последовательность). Программа должна вывести одно
число: количество всех чисел, оканчивающихся на 3. (см. пример на слайде РЕШИТЬ В ПРОГРАММЕ ПАСКАЛЬ
Это тема форм записи алгоритмов. Это форма блока. В начале записи каждого алгоритма есть слово "начало", а в конце "конец". Они обозначаются овалами. Ввод или вывод (что-то вроде "дано" и "ответ") записываются в параллелограме (согнутом прямоугольнике). В обычном прямоугольнике записывают действия. В ромбе — вопрос, на который можно ответить либо "да", либо "нет" и в зависимости от этого нужно выполнить те или иные действия. В этом упражнении всё просто делаешь по действиям. Например: ввод x, y — 5 и 25 (что дано в таблице). Дальше условие (вопрос): "x=y?" Отвечаем "нет" и пишем в таблицу ответ. После этого нас спрашивают: "x>y?" Снова нет. В таблицу пишем "нет". Действие: "y=y-x", то есть y теперь равен 25-5, что есть 20. Пишем в таблицу это число. Повторяем алгоритм несколько раз (там стрелка ведёт к началу алгоритма после этого, поэтому и повторяем), пока y не станет равен 5 (25-5-5-5-5),тогда на вопрос "x=y" ответим "да", пишем в таблицу значение x в итоге и готово. С нижней таблицей так же.
Так пойдёт?
Объяснение:
program Zeldaproj1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
const z=100;
type mas=array[1..z] of integer;
var
u1:mas;
max1,max2,max3:integer;
procedure ch1(n:integer);
var i:integer;
begin
for i:=1 to n do
u1[i]:=random(100);
for i:=1 to n do
writeln('Элементы массива: ',u1[i]);
max1:=u1[i];max2:=u1[i];max3:=u1[i];
for i:=1 to n do
if u1[i]>max1 then begin
max1:=u1[i];
end;
for i:=1 to n do
if (u1[i]>max2) and (u1[i]<>max1) then begin
max2:=u1[i];
end;
writeln('max1: ',max1,' max2: ',max2,' max3: ',max3);
end;
begin
ch1(5);
readln;
ch1(7);
readln;
ch1(13);
readln;
end.