- Теория:
- Алгоритмы:
- Числа:
|
ГЛАВА I
ЗАДАЧИ С РЕШЕНИЯМИ
Целочисленная арифметика. Проверка условий.
|
1. Ввести пять чисел с клавиатуры, и найти произведение чисел меньших 10.
2. С клавиатуры вводятся числа до первого отрицательного числа. Определить максимальное число.
3. Найти максимальное из натуральных чисел, не превышающих 5000, которое нацело делится на 39.
4. Найти количество четырехзначных чисел, делящихся на 777 и на свою последнюю цифру.
5. Найти количество пар натуральных двузначных чисел а и b, произведение которых в 10 раз больше их суммы.
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 то домножаем на него произведение}
end;
writeln('p=',p);
end.
|
2. С клавиатуры вводятся числа до первого отрицательного числа. Определить максимальное число.
Ответ может быть таким:
15
123
-5
максимальное число = 123
program if_02;
uses crt;
var {a - число, вводимое с клавиатуры, m - максимальное число}
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.
|
|
|
|
|
|
|