Учебно-методическое пособие по теме "Типичные простейшие конструкции программ на языке Паскаль (для сдачи ОГЭ-23, задание 15.2)»
- Рубрика: Презентации / Другие презентации
- Просмотров: 131
Презентация "Учебно-методическое пособие по теме "Типичные простейшие конструкции программ на языке Паскаль (для сдачи ОГЭ-23, задание 15.2)»" онлайн бесплатно на сайте электронных школьных учебников edulib.ru
Способы ввода
последовательности чисел
с клавиатуры
Вводится КОЛИЧЕСТВО чисел,
а потом сами числа.
Вводятся числа, пока не введут
0 - признак конца последовательности.
Program z20;
Var N, a, k: integer;
BEGIN
readln(N);
for k:=1 to N do
begin
readln(a);
……
end;
writeln(…);
END.
Если известно N - количество чисел в последовательности:
Общая структура ввода на Паскале
Program z20;
Var a: integer;
BEGIN
readln(a);
while a <> 0 do
begin
……
readln(a);
end;
writeln(…);
END .
«Ввод по прерыванию»
0 – признак окончания ввода
Типы заданий
Определить максимальное число
в последовательности чисел;
Определить минимальное число
в последовательности чисел;
Определить количество чисел, удовлетворяющих условиям;
Найти сумму чисел, удовлетворяющих условиям;
Найти среднее арифметическое чисел, удовлетворяющих условиям;
Нахождение максимального элемента в последовательности
Program MAX;
Var a, Amax : integer;
BEGIN
Amax:=-30000;
readln(a);
while a <> 0 do
begin
If (a >Amax) then
Amax:= a;
readln(a);
end;
writeln(Amax);
END.
Program MAX;
Var k, N, a, Amax: integer;
BEGIN
Amax:=-30000;
readln(N);
for k:=1 to N do
begin
readln(a);
If (a >Amax) then
Amax:= a;
end;
writeln(Amax);
END.
Нахождение максимального элемента в последовательности
НАДО:
До цикла в переменную, которая будет отвечать за максимум, занести самое маленькое значение из всех возможных.
Например, Amax:=-30000;
В цикле перебирать элементы числовой последовательности, и каждый раз находя бОльший, чем был до этого, заносить его в переменную, отвечающую за максимум:
If (a > Amax) then Amax:= a;
Нахождение минимального элемента в последовательности
Program MIN;
Var a, Amin : integer;
BEGIN
Amin:=30000;
readln(a);
while a <> 0 do
begin
If (a <Amin) then
Amin:= a;
readln(a);
end;
writeln(Amin);
END.
Program MIN;
Var k, N, a, Amin: integer;
BEGIN
Amin :=30000;
readln(N);
for k:=1 to N do
begin
readln(a);
If (a <Amin) then
Amin:= a;
end;
writeln(Amin);
END.
Нахождение минимального элемента в последовательности
НАДО:
До цикла в переменную, которая будет отвечать за минимум, занести самое большое значение из всех возможных.
Например, Amin:=30000;
В цикле перебирать элементы числовой последовательности и, каждый раз находя меньший, чем был до этого, заносить его в переменную, отвечающую за минимум:
If (a < Amin) then Amin:= a;
Подсчёт количества объектов
Program Schet;
Var a, schet : integer;
BEGIN
schet :=0;
readln(a);
while a <> 0 do
begin
If (условие) then
schet := schet +1;
readln(a);
end;
writeln(schet);
END.
Program Schet;
Var k, N, a, schet: integer;
BEGIN
schet :=0;
readln(N);
for k:=1 to N do
begin
readln(a);
If (условие) then
schet := schet+1;
end;
writeln(schet);
END.
Подсчёт количества объектов
НАДО:
До цикла обнулить переменную, которая будет отвечать за количество.
Например, schet :=0;
В цикле перебирать элементы числовой последовательности и найдя те, которые удовлетворяют условию задачи, увеличить их количество на 1:
If (условие) then schet := schet+1;
Подсчёт суммы объектов
Program Schet;
Var a, sum : integer;
BEGIN
sum :=0;
readln(a);
while a <> 0 do
begin
If (условие) then
sum := sum +a;
readln(a);
end;
writeln(sum);
END.
Program Schet;
Var k, N, a, sum: integer;
BEGIN
sum :=0;
readln(N);
for k:=1 to N do
begin
readln(a);
If (условие) then
sum:= sum+a;
end;
writeln(sum);
END.
Подсчёт суммы объектов
НАДО:
До цикла обнулить переменную, которая будет отвечать за сумму.
Например, sum :=0;
В цикле перебирать элементы числовой последовательности и найдя те, которые удовлетворяют условию задачи, каждый раз добавлять их к уже имеющейся сумме:
If (условие) then sum := sum + a;
Нахождение среднего арифметического чисел, удовлетворяющих условиям
Program SRznach;
Var a, sum, schet : integer;
SRZ: real;
BEGIN
sum :=0; schet:=0;
readln(a);
while a <> 0 do
begin
If (условие) then
Begin sum := sum +a;
schet:= schet +1; end;
readln(a);
end;
SRZ:=sum/schet;
writeln(SRZ:5:2);
END.
Program SRznach;
Var k, N, a, sum, schet: integer;
SRZ: real;
BEGIN
sum :=0; schet:=0;
readln(N);
for k:=1 to N do
begin
readln(a);
If (условие) then
Begin sum:= sum+a;
schet:= schet +1; end;
end;
SRZ:=sum/schet;
writeln(SRZ:5:2);
END.
Нахождение среднего арифметического чисел, удовлетворяющих условиям
НАДО:
До цикла обнулить переменную, которая будет отвечать за сумму и за количество:
sum :=0; schet :=0;
В цикле перебирать элементы числовой последовательности и найдя те, которые удовлетворяют условию задачи, каждый раз добавлять их к уже имеющейся сумме и стут же считать их количество:
If (условие) then begin sum := sum + a;
schet := schet+1; end;
Вычислить вне цикла среднее арифметическое, разделив сумму на количество:
SRZ:=sum/schet;
Записать ответ, например, с точностью до СОТЫХ:
writeln(SRZ:5:2);
Примеры УСЛОВИЙ
Число a кратно 6
Число a - четное
Число a - нечетное
Число a - трехзначное
Число a - оканчивается на 3
Значение числа a вывести с точностью до десятых, до сотых…
Если число превосходит значение 11, то вывести «YES», в противном случае сообщить, что таких чисел нет (вывести «NO»).
Число a кратно 6
Число a кратно 6 (делится нацело на 6) , т.е. при делении на 6 даёт остаток 0
if (a mod 6 = 0) then ….
1.
Число a - чётное
Число a - чётное (делится нацело на 2) , т.е. при делении на 2 даёт остаток 0
if (a mod 2 = 0) then ….
2.
Число a - нечётное
Число a - нечётное (не делится нацело на 2) , т.е. при делении на 2 не даёт остаток 0
if (a mod 2 <> 0) then ….
3.
Число a - трёхзначное
Число a - трёхзначное (состоит из 3 цифр) , т.е. лежит в промежутке от 100 до 999 включая
if (a > = 100) AND (a < = 999) then ….
4.
Число a оканчивается на 3
Число a оканчивается на 3 (последняя цифра 3) , т.е. при делении на 10 даёт остаток 3
if (a mod 10 = 3) then ….
5.
Если число превосходит значение 11, то вывести «YES», в противном случае сообщить, что таких чисел нет
(вывести «NO»).
if (a > 11) then writeln(‘YES’) else writeln(‘NO’)
7.
Напишите программу для решения следующей задачи. Ученики вели дневники наблюдения за погодой и ежедневно записывали дневную температуру. Найдите самую низкую температуру за время наблюдения. Если температура опускалась ниже –15 градусов, выведите YES, иначе выведите NO. Программа получает на вход количество дней, в течение которых проводилось измерение температуры N (1 ≤ N ≤ 31), затем для каждого дня вводится температура (№52)
var a, N, i, min, metka : integer;
begin
min:=50; metka:=0;
readln(N);
for i:=1 to N do begin
readln(a);
if a < min then min := a;
if a < –15 then metka := 1;
end;
writeln(min);
if metka > 0 tnen writeln(’YES’) else writeln(’NO’)
End.
Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое чисел, кратных 8, или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введённых чисел неизвестно,последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести среднее арифметическое чисел, кратных 8, или вывести «NO», если таких чисел нет. Значение выводить с точностью до десятых (№58)
var a, s, n: integer;
begin
s:=0; n:=0;
readln(a);
while a<>0 do begin
if (a mod 8 = 0) then
begin
s := s + a;
n := n + 1;
end;
readln(a); end;
if n > 0 then writeln(s/n :5:1)
else writeln(’NO’);
end.
Напишите программу, которая в последовательности целых чисел определяет сумму двух наибольших и сумму двух наименьших. Программа должна вывести две этих суммы в указанном порядке. Программа получает на вход целые числа, количество введённых чисел не известно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000 (№18)
Program z18;
var a, max1, max2, min1, min2, smax, smin: integer;
begin
min1:= 30000; min2:= 30000; max1:= -30000; max2:= -30000;
readln(a);
while a <> 0 do
begin
if (a <= min1) then begin
min2:=min1;
min1:=a;
end
else if (a <=min2) then min2:=a;
if a >= max1 then begin
max2:=max1;
max1:=a;
end
else if (a >=max2) then max2:=a;
readln(a);
end;
smax:=max1+max2; smin:=min1+min2;
writeln(smax); writeln(smin);
end.