Решение задач на языке программирования Pascal (Подготовка к ОГЭ)

  • Презентации учебные
  • pptx
  • 19.02.2020
Публикация в СМИ для учителей

Публикация в СМИ для учителей

Бесплатное участие. Свидетельство СМИ сразу.
Мгновенные 10 документов в портфолио.

Подборка задач с решением будет полезна для повторения и подготовке к ОГЭ по информатике.
Иконка файла материала Решение задач Паскаль А.З.В. 14-02-2020.pptx

Решение задач на языке программирования Pascal

(Подготовка к ОГЭ)

Автор: Александрова З.В., учитель физики и информатики
МБОУ СОШ №5 пгт Печенга, Мурманская область

Задача 1.
Напишите программу для выведения на экран трёх чисел в порядке обратном вводу. Нужно ввести с клавиатуры три числа (первое, второе и третье), а компьютер должен вывести третье, затем первое и второе.

 
program tri_сhisla;
var a, b, c: integer;
begin
writeln('Введите три числа через пробел');
readln(a, b, c);
writeln(c,' ', a, ' ',b);
read
end.
 

Решение:

Задача 2.
Напишите программу, которая производит обмен значений переменных x и y, если больше y.

program Obmen;
var x,y: integer;
begin
writeln('Введите значения x и y');
readln(x,y);
if x>y then
begin
x:=x+y;
y:=x-y;
x:=x-y;
writeln('x=',x);
writeln('y=',y);
readln
end;
end.

Задача 3.
Напишите программу для вычисления наибольшего общего делителя двух целых чисел.

program nod1;
var
m, n: integer;
nod: integer;
begin
writeln ('Введите первое число m=');
readln (m);
writeln ('Введите второе число n=');
readln (n);
while m<>n do
if m>n then m:=m-n
else n:=n-m;
nod:=m;
writeln('НОД = ', nod);
readln
end.

1 способ

2 способ

program nod2;
var
m, n: integer;
nod: integer;
begin
writeln ('Введите первое число m=');
readln (m);
writeln ('Введите второе число n=');
readln (n);
repeat
if m>n then m:=m-n;
if mthen n:=n-m
until m=n;
nod:=m;
writeln('НОД = ', nod);
readln
end.

Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введен 0) и подсчет количества введенных положительных и отрицательных чисел.

Задача 4.

program podschet_chisel_1;
var n, k1, k2: integer;
begin
k1:=0;
k2:=0;
repeat
writeln ('Введите целое число>>');
readln (n);
if n>0 then k1:=k1+1;
if n<0 then k2:=k2+1;
until n=0;
writeln ('Введено:') ;
writeln ('положительных чисел - ', k1);
writeln ('отрицательных чисел - ', k2);
readln
end.

Задача 5.
Даны натуральные числа n и k. Составить программу вычисления выражения 1k + 2k + … + nk. Для решения задачи нужно организовать два цикла, один из которых поместим внутрь другого. Такие конструкции называют вложенными циклами.

program dvazikla;
var
n,k,sum,d,i,j : integer;
begin
writeln('Введите значения n и k через пробел');
readln(n,k);
sum:=0;
for i:=1 to n do
begin
d:= 1;
for j:=1 to k do
d:=d*i;
sum:= sum+ d;
end;
writeln(sum);
readln
end.

Задача 6.
Проверить, является ли четырехзначное число счастливым билетом. Дано четырехзначное число. Проверить, является ли оно «счастливым билетом».
Счастливым билетом называется число, в котором: а) при четном количестве цифр в числе сумма цифр его левой половины равна сумме цифр его правой половины; б) при нечетном количестве цифр – то же самое, но с отбрасыванием серединной цифры.

program Schastliviy_bilet;
var
n: integer;
left, right: integer;
begin
writeln('Введите номер билета - четырёхзначное число');
readln(n);
right := n mod 10;
n := n div 10;
right := right + n mod 10;
n := n div 10;

left := n mod 10;
n := n div 10;
left := left + n;
writeln(left=right);
if left=right then writeln('Билет является счастливым')
else writeln('Билет не является счастливым');
readln
end.

Program Summa_ch;
Var a, i, sum, n: integer;
Begin
Writeln('Введите количество чисел n<=1000 n=');
Readln(n);
sum:=0;
For i:=1 to n do
Begin
Writeln('Введите число’);
Readln(a);
sum:= sum + a;
End;
Writeln('sum=', sum);
readln
End.

Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чисел. Программа получает на вход количество чисел в последовательности, а затем сами числа. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – СУММУ чисел.

Задача 7.

Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чисел, КРАТНЫХ 4. В последовательности всегда имеется число, кратное 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – СУММУ чисел, кратных 4.

Задача 8.

Program Summa_ch1;
Var a, i, sum, n: integer;
Begin
Writeln('Введите количество чисел n<=1000 n=');
Readln(n);
sum:=0;
For i:=1 to n do
Begin
Writeln('Введите число’);
Readln(a);
if a mod 4 = 0
then sum:= sum + a;
End;
Writeln('sum=', sum);
readln
End.

Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чисел, ОКАНЧИВАЮЩИХСЯ на 2. В последовательности всегда имеется число, ОКАНЧИВАЮЩЕЕСЯ на 2. Программа получает на вход количество чисел в последовательности, а затем сами числа. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – СУММУ чисел, ОКАНЧИВАЮЩИХСЯ на 2.

Задача 9.

Program Summa_ch2;
Var a, i, sum, n: integer;
Begin
Writeln('Введите количество чисел n<=1000 n=');
Readln(n);
sum:=0;
For i:=1 to n do
Begin
Writeln('Введите число’);
Readln(a);
if a mod 10 = 2
then sum:= sum + a;
End;
Writeln('sum=', sum);
Readln
End.

Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чисел, чётных чисел. В последовательности всегда имеется чётное число. Программа получает на вход количество чисел в последовательности, а затем сами числа. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – СУММУ чётных чисел.

Задача 10.

Program Summa_ch3;
Var a, i, sum, n: integer;
Begin
Writeln('Введите количество чисел n<=1000 n=');
Readln(n);
sum:=0;
For i:=1 to n do
Begin
Writeln('Введите число');
Readln(a);
if a mod 2 = 0
then sum:= sum + a;
End;
Writeln('sum=', sum);
Readln
End.

Подсчитайте, сколько среди данных N чисел нулей, положительных чисел, отрицательных чисел.

Задача 11.

program chisla;
var
n, a, i, k, l, m: integer;
begin
k := 0;
l := 0;
m := 0;
writeln ('Введите количество чисел');
read(n);
for i := 1 to n do
begin
writeln ('Введите число');
read(a);

if (a = 0) then
k := k + 1;
if (a > 0) then
l := l + 1;
if (a < 0) then
m := m + 1;
end;
writeln(k, ' ', l, ' ', m, ' ');
end.

Задача 12.

Дано натуральное число N. Определить наименьшую и наибольшую цифры данного числа

program chislo1;
var
a, b, c: integer;
begin
writeln ('Введите число');
read(a);
b := 10;
c := -10;
while a > 0 do
begin
if (a mod 10 > c) then
c := a mod 10;
if (a mod 10 < b) then
b := a mod 10;
a := a div 10;
end;
writeln(b, ' ', c);
read
end.

Задача 13.

Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. Последовательность завершается числом 0, при считывании которого программа должна закончить свою работу и вывести количество членов последовательности (не считая завершающего числа 0).Числа, следующие за числом 0, считывать не нужно

program posledov;
var
a, s: integer;
begin
s := 0;
writeln ('Введите число');
read (a);
while a <> 0 do
begin
s := s + 1;
read(a);
end;
writeln(s);
end.

Задача 14.

Выведите все точные квадраты натуральных чисел, не превосходящие данного числа N. Входные данные: задано единственное целое число N. Выходные данные: необходимо вывести все точные квадраты натуральных чисел, не превосходящие данного числа N.

program kvadratchislo;
var
i, n: integer;

begin
writeln ('Введите количество чисел');
read(n);
for i := 1 to n do
if sqr(i) <= n then
writeln(sqr(i));
readln
end.

Задача 15.

Определите количество четных элементов в последовательности, завершающейся числом 0. Само число 0, и все, что следует за ним, учитывать не нужно.

program posvedchet;
var
a, k: integer;

begin
k := 0;
writeln ('Введите число');
read(a);
while a <> 0 do
begin
if (a mod 2 = 0) then
k := k + 1;
read(a);
end;
writeln(k);
end.