СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

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

Категория: Информатика

Нажмите, чтобы узнать подробности

Материал представляет собой подборку задач с подробным решением. Нацелен на развитие алгоритмического и логического мышления, формирование интереса к изучению предмета, подготовку к успешной сдаче ОГэ по информатике.

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

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

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

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

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

Задача 1 . Напишите программу для выведения на экран трёх чисел в порядке обратном вводу. Нужно ввести с клавиатуры три числа (первое, второе и третье), а компьютер должен вывести третье, затем первое и второе. Решение:   program tri_сhisla; var a, b, c: integer; begin  writeln('Введите три числа через пробел');  readln(a, b, c);  writeln(c,' ', a, ' ',b);  read end .  

Задача 1 .

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

Решение:

 

program tri_сhisla;

var a, b, c: integer;

begin

writeln('Введите три числа через пробел');

readln(a, b, c);

writeln(c,' ', a, ' ',b);

read

end .

 

y then begin x:=x+y; y:=x-y; x:=x-y; writeln('x=',x); writeln('y=',y); readln end ; end . " width="640"

Задача 2.

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

program Obmen;

var x,y: integer;

begin

writeln('Введите значения x и y');

readln(x,y);

if xy then

begin

x:=x+y;

y:=x-y;

x:=x-y;

writeln('x=',x);

writeln('y=',y);

readln

end ;

end .

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

Задача 3.

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

1 способ

2 способ

program nod2;

var

m, n: integer;

nod: integer;

begin

writeln ('Введите первое число m=');

readln (m);

writeln ('Введите второе число n=');

readln (n);

repeat

if mn then m:=m-n;

if mthen n:=n-m

until m=n;

nod:=m;

writeln('НОД = ', nod);

readln

end .

program nod1;

var

m, n: integer;

nod: integer;

begin

writeln ('Введите первое число m=');

readln (m);

writeln ('Введите второе число n=');

readln (n);

while mn do

if mn then m:=m-n

else n:=n-m;

nod:=m;

writeln('НОД = ', nod);

readln

end .

'); readln (n); if n0 then k1:=k1+1; if nthen k2:=k2+1; until n=0; writeln ('Введено:') ; writeln ('положительных чисел - ', k1); writeln ('отрицательных чисел - ', k2); readln end . " width="640"

Задача 4.

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

program podschet_chisel_1;

var n, k1, k2: integer;

begin

k1:=0;

k2:=0;

repeat

writeln ('Введите целое число');

readln (n);

if n0 then k1:=k1+1;

if nthen k2:=k2+1;

until n=0;

writeln ('Введено:') ;

writeln ('положительных чисел - ', k1);

writeln ('отрицательных чисел - ', k2);

readln

end .

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

Задача 5.

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

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 .

Задача 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 .

Задача 7. Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чисел. Программа получает на вход количество чисел в последовательности, а затем сами числа. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – СУММУ чисел. Program Summa_ch; Var a, i, sum, n: integer ; Begin Writeln( 'Введите количество чисел nReadln(n); sum:= 0 ; For i:= 1 to n do Begin  Writeln('Введите число’);  Readln(a); sum:= sum + a; End ; Writeln( 'sum=' , sum); readln End .

Задача 7.

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

Program Summa_ch;

Var a, i, sum, n: integer ;

Begin

Writeln( 'Введите количество чисел n

Readln(n);

sum:= 0 ;

For i:= 1 to n do

Begin

Writeln('Введите число’);

Readln(a);

sum:= sum + a;

End ;

Writeln( 'sum=' , sum);

readln

End .

Задача 8. Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чисел, КРАТНЫХ 4. В последовательности всегда имеется число, кратное 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – СУММУ чисел, кратных 4. Program Summa_ch1; Var a, i, sum, n: integer ; Begin Writeln( 'Введите количество чисел nReadln(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 .

Задача 8.

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

Program Summa_ch1;

Var a, i, sum, n: integer ;

Begin

Writeln( 'Введите количество чисел 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 .

Задача 9. Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чисел, ОКАНЧИВАЮЩИХСЯ на 2. В последовательности всегда имеется число, ОКАНЧИВАЮЩЕЕСЯ на 2. Программа получает на вход количество чисел в последовательности, а затем сами числа. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – СУММУ чисел, ОКАНЧИВАЮЩИХСЯ на 2. Program Summa_ch2; Var a, i, sum, n: integer ; Begin Writeln( 'Введите количество чисел nReadln(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 .

Задача 9.

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

Program Summa_ch2;

Var a, i, sum, n: integer ;

Begin

Writeln( 'Введите количество чисел 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 .

Задача 10. Напишите программу, которая в последовательности натуральных чисел определяет СУММУ чисел, чётных чисел. В последовательности всегда имеется чётное число. Программа получает на вход количество чисел в последовательности, а затем сами числа. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – СУММУ чётных чисел. Program Summa_ch3; Var a, i, sum, n: integer ; Begin Writeln( 'Введите количество чисел nReadln(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 .

Задача 10.

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

Program Summa_ch3;

Var a, i, sum, n: integer ;

Begin

Writeln( 'Введите количество чисел 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 .

0 ) then l := l + 1 ; if (a then m := m + 1 ; end ; writeln(k, ' ' , l, ' ' , m, ' ' ); end . " width="640"

Задача 11.

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

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 then

m := m + 1 ;

end ;

writeln(k, ' ' , l, ' ' , m, ' ' );

end .

0 do begin if (a mod 10 c) then c := a mod 10 ; if (a mod 10 then b := a mod 10 ; a := a div 10 ; end ; writeln(b, ' ' , c); read end . " width="640"

Задача 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 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 .

Задача 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) then  writeln(sqr(i)); readln end .

Задача 14.

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

program kvadratchislo;

var

i, n: integer ;

begin

writeln ( 'Введите количество чисел' );

read(n);

for i := 1 to n do

if sqr(i) 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 .

Задача 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 .


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!