ВХОД

МЕТОДИЧЕСКИЕ РАЗРАБОТКИ ПО КУРСУ ИНФОРМАТИКИ

"ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PASCAL"

Начало > Глава I. Цифры, Условия > Задачи с решениями

ГЛАВА I

ЗАДАЧИ С РЕШЕНИЯМИ

Целочисленная арифметика. Проверка условий.



1. Ввести пять чисел с клавиатуры, и найти произведение чисел меньших 10.
  Переход
Блок-схема

2. С клавиатуры вводятся числа до первого отрицательного числа. Определить максимальное число.
  Переход
Блок-схема

3. Найти максимальное из натуральных чисел, не превышающих 5000, которое нацело делится на 39.
  Переход
Блок-схема

4. Найти количество четырехзначных чисел, делящихся на 777 и на свою последнюю цифру.
  Переход
Блок-схема

5. Найти количество пар натуральных двузначных чисел а и b, произведение которых в 10 раз больше их суммы.
  Переход. (Вариант решения с двумя циклами For).
Блок-схема
Переход. (Вариант решения с циклами Repeat и For).
Блок-схема

6. Дан ряд чисел, в котором каждое следующее число больше предыдущего на 1. Количество чисел в ряду больше 2.
Первое число ряда равно 5. Найти последнее число ряда.
Должно выполняться условие: среднее арифметическое квадратов всех целых чисел - целое число.
  Переход
Блок-схема

7. Даны целые числа от 1 до n.
Посчитать среднее арифметическое этих чисел,
если оно превышает 5, то на экран вывести число на 100 меньше среднего арифметического. В противном случае на экран вывести сумму этих чисел.
  Переход
Блок-схема

8. Найти сумму всех четных двузначных чисел.
  Переход
Блок-схема

9. Проверить утверждение: число, вводимое с клавиатуры, нечетное, двузначное.
  Переход
Блок-схема

10. Найти первое трехзначное число, делящееся на 19 нацело.
  Переход
Блок-схема

1. Ввести пять чисел с клавиатуры и найти произведение чисел меньших 10.

Ответ:
ch=1
ch=2
ch=3
ch=55
ch=55
p=6

program if_01;
uses crt;
var ch, p: integer; i: integer;

    {ch - числа;
    p - произведение чисел;
    i - счетчик чисел}
begin
clrscr;
p:=1;
for i:=1 to 5 do {пять раз повторим цикл}
    begin
    write('ch='); readln(ch);
    if ch<10 then {если число меньше 10 то домножаем на него произведение}
      begin
      p:=p*ch;
      end;
    end;

writeln('p=',p);


end.

2. С клавиатуры вводятся числа до первого отрицательного числа. Определить максимальное число.

Ответ может быть таким:
15
123
-5
максимальное число = 123

program if_02;
uses crt;
var {a - число, вводимое с клавиатуры, m - максимальное число}

    a: integer;
    m: integer;
begin
    clrscr;
    m:=0;
    repeat
      readln(a);
      if a>m then m:=a
    until a<0;
    writeln ('максимальное число = ',m)
end.

3. Найти максимальное из натуральных чисел, не превышающих 5000, которое нацело делится на 39.

Ответ: max число=4992

program if_03;
uses crt;
var ch:integer; p:boolean;

    {ch - число;
    p - логическая переменная, определяющая условие целочисленного деления}
begin clrscr;
    ch:=5000; p:=false; {исходные значения}

    repeat
      p:=ch mod 39 =0 ;
      dec(ch) {уменьшаем число на 1}
    until p=true ;

    if p then writeln('ch=', ch+1) else writeln('таких чисел нет')
end.

4. Найти четырехзначные числа, делящиеся на 777 и на свою последнюю цифру.

Ответ: 2331 3885 4662 6216 6993 8547 9324

program if_04;
uses crt;
var ch, c:integer;
{с - последняя цифра числа ch}
begin

    clrscr;
    for ch:=1000 to 9999 do
      begin
      c:= ch mod 10;
      if (ch mod 777=0) and (c< >0) and (ch mod c=0) then writeln(ch);
    end;
end.

5. Найти пары натуральных двузначных чисел а и b, произведение которых в 10 раз больше их суммы.

Ответ:
a=12 b=60
a=14 b=35
a=15 b=30
a=20 b=20
a=30 b=15
a=35 b=14
a=60 b=12

program if_05_1; {вариант решения с двумя циклами For}
uses crt;
var a, b, s, p : integer;

    {a, b - проверяемые числа;
    S - сумма чисел;
    P - произведение чисел}
begin
clrscr;
    for a:=10 to 99 do {для каждого двузначного числа a ищем двузначное число b}

      for b:=10 to 99 do
        begin
        s:= a + b; p:= a*b;

        if p=10*s then {если соблюдается условие, то пара чисел выводится на экран}
          writeln('a=', a, 'b=':5, b);
    end;
end.


-------------------------------

program if_05_2;{вариант решения с циклами Repeat и For}
uses crt;
var a, b, s, p : integer;

    {a, b - проверяемые числа;
    S - сумма чисел;
    P - произведение чисел}

begin
clrscr;
    a:=10; {первое двузначное число}
    repeat
    for b:=10 to 99 do {второе двузначное число}
        begin
        s:= a + b;
        p:= a*b;

        if p=10*s then {если соблюдается условие, то пара чисел выводится на экран}
          writeln('a=',a,'b=':5,b);
        end;
    inc(a) ;
    until a>99;

end.

6. Дан ряд чисел, в котором каждое следующее число больше предыдущего на 1. Количество чисел в ряду больше 2
Первое число ряда равно 5. Найти последнее число ряда.
Должно выполняться условие: среднее арифметическое квадратов всех целых чисел - целое число.

Ответ:

s=255 n=5 f=51 x=9
Среднее арифметическое квадратов всех целых чисел ряда = 51


program if_06;
uses crt;
var

    i:integer; {числа}
    x:integer; {последнее число ряда}
    s:integer ; {сумма квадратов}
    n:integer; {количество элементов ряда}
    f:real; {среднее арифметическое квадратов}
begin
clrscr;
    s:=0;
    i:=5; {первое число ряда}
    n:=1;
    repeat
      s:=i*i+s; {нахождение суммы квадратов}
      f:=s/n; {нахождение среднего арифметического квадратов}
      inc(n); {счетчик чисел}
      inc(i); {следующее число}
    until (n>2) and (frac(f)=0);
    x:=i-1;
    writeln ('x=':5,x) ;
    writeln( 'Среднее арифметическое квадратов всех целых чисел ряда = ', f ) ;
end.

7. Даны целые числа от 1 до n.
Посчитать среднее арифметическое этих чисел,
если оно превышает 5, то на экран вывести число на 100 меньше среднего арифметического.
В противном случае на экран вывести сумму этих чисел.

Ответ может быть таким:

введите количество чисел ряда 9
сумма чисел равна 45

или

введите количество чисел ряда 10
величина на 100 меньше среднего арифметического -94.5

program if_07;
Uses crt;
var

    i: integer; {счетчик}
    n: integer; {количество чисел}
    s: integer; {сумма чисел}
    sr: real; {среднее арифметическое}
    msr: real; {величина на 5 меньше ср. арифметического}
begin clrscr;
    write ('введите количество чисел ряда ');
    readln (n);
    s:=0;
    for i:=1 to n do
      begin
      s:=s+i;
      sr:=s/n;
      end;

    if sr>5 then
      begin
      msr:=sr-100;
      writeln ('величина на 100 меньше среднего арифметического', ' ',msr);
      end
    else
      writeln ('сумма чисел равна ', s);


end.

8. Найти сумму всех четных двузначных чисел
Ответ:
S=2430.


program if_08 ;
uses crt;
var ch, S : integer;

    {ch - число;
    S - сумма чисел}

begin
    clrscr;
    S:=0;
    {сумма чисел сначала равна 0}

    for ch:=10 to 99 do {складываем только двузначные числа}
      If ch mod 2=0 then inc(S, ch);

    writeln('S=', S);
end.


9. Проверить утверждение: число, вводимое с клавиатуры, нечетное, двузначное.
Ответ:
15
Число, вводимое с клавиатуры, нечетное, двузначное: True.


program if_09 ;
uses crt;
var ch: integer;
p: boolean;
    {ch - число;
    p - проверка утверждения}

begin
    clrscr;
    readln(ch);
    p:= (ch mod 2=1) and (ch>=10) and (ch<100) ;

    writeln('число, вводимое с клавиатуры, нечетное, двузначное: ' , p);
end.
10. Найти первое трехзначное число, делящееся на 19 нацело.

Ответ: Первое трехзначное число, делящееся на 19 нацело: 114.

program if_10;
uses crt;
var ch: integer; {ch - проверяемое число}
begin
    clrscr;
    ch:=100;

    while ch mod 19 < > 0 do inc(ch); {пока число не разделится нацело на 19, увеличиваем его на 1}

    write ( 'Первое трехзначное число, делящееся на 19 нацело: ', ch);
end.

 

 

 

 

Copyright ©2011 Nika A.S.
Hosted by uCoz