Лабораторная работа. Задача1 :Дано натуральное число n (n<=9999)

Задача1: Дано натуральное число n (n<=9999). Определить, является ли оно палиндромом («перевертышем»), с учетом четырех цифр. Например, палиндромами являются числа: 2222, 6116, 0440.

Итак, у нас четырехзначное число, поэтому переменная оператора For изменяется от 1 до 4. В переменной m хранится «остаток» числа, сначала он равен введенному числу. В переменной с именем r формируем значение числа - «перевертыша». Основными операциями являются: r:=10*r + m Mod 10 m:=m Div 10.

Результат трассировки приведен в таблице.

i m r
-    
    0*10+3994 mod 10= 0+4=4
    4*10+399 mod 10=40+9=49
    49*10+39 mod 10=490+9=499
    499*10+3 mod 10=4990+3=4993

Programex1;

Var n,m,r,i: Integer;

Begin

writeln(‘Введите целое число, меньшее 10000’);

readln(n);

m:=n; r:=0;

For i:=1 to 4 do

begin

r:=r*10+m mod 10; m:=m Div 10;

end;

if r=n Then Writeln(‘Да’);

Else Writeln(‘Нет’);

readln;

end.

1) Измените программу так, чтобы можно было обрабатывать целые числа из диапазона Longint.

2) Замените цикл for, в программе, на циклы While и Repeat... Until

Задача 2: Дано натуральное число n. Требуется подсчитать количество цифр данного числа.

Решение: Подсчет цифр начнем с последней цифры числа. Число делим на 10, убирая последнюю цифру и т.д.

Пусть m - это число, л- счетчик цифр.

Program ex2;

var m,n: Longint;

k: Integer;

begin

writeln(‘введите целое число’);

readln(n);

m:=n; k:=0;

While m<>0 Do

begin Inc(k); m:=m Div 10 end;

writeln (‘В числе’,n,’ - ‘,k,’ цифр ‘);

end.

Модифицируя программу ех2, решите следующие задачи:

· найдите сумму цифр числа;

· найдите первую цифру числа;

· поменяйте порядок цифр числа на обратный;

· найдите количество четных цифр числа;

· найдите наибольшую цифру числа;

· найдите сумму цифр числа, больших 5;

· ответьте на вопрос, сколько раз данная цифра встречается в числе.

Задача 3: Натуральное число р называется простым, если оно делится только на 1 и на себя. По соглашению 1 не считают простым числом. Начало последовательности простых чисел имеет вид: 2,3,5,7,11,13, 17, 19, 23,....

В программе ех3 определяется, является ли данное число простым. Мы ищем делители числа n в интервале от 2 до n div 2, хотя можно было бы ограничиться интервалом от 2 до целой части Ön

program ex3;

Var i, n:Longint;

Begin

Writeln(‘Введите натуральное число’);

Readln(n);

i:=1;

Repeat

inc(i)

Until (i>n div 2) or (n mod i = 0);

if i> n div 2 Then Writeln(‘число ’,n,’простое’);

Еlse Writeln(‘Число ‘,i,’- первый делитель

числа’, n, ‘, больший 1’);

end.

Эту задачу можно решить и с использованием оператора While. Сделайте это. Затем измените программу так, чтобы в ней осуществлялся вывод всех делителей числа n

Подсказка. Логическое выражение в операторе Repeat....Until упростится, а в нем останется только условие i>n div 2, а в теле цикла появится оператор

if n mod i = 0 Then Writeln(....,i)

§11. Оператор варианта выбора

Сase <порядковая переменная> of

<константа 1>: <оператор 1>;

<константа 2>: <оператор 2>;

......

<константа n>: <оператор n>;

[Else <оператор >; ]

end;

Если порядковая переменная равна одной из перечисленных констант, то выполняется соответствующий оператор. Затем управление передается за пределы оператора выбора. Если значение переменной не совпадает ни с одной константой, то выполняется оператор, стоящий после Else, если он есть, либо управление передается на оператор, следующий за End.

Задача 1: Составьте программу, в которой определяется, какой буквой - гласной или согласной - является введенный символ английского алфавита.

Решение:

Разделим все символы на три группы:

· гласные буквы английского алфавита;

· согласные буквы английского алфавита;

· символы, не являющиеся буквами английского алфавита.

Program ех4;

var ch: char;

Begin

Writeln(‘Введите символ’);

Readln(ch);

Case ch of

‘a’,’e’,’i’,’o’,’u’: writeln(‘Это гласная’);

‘a’...’z’: Writeln(‘это согласная’);

else writeln(‘это не английский алфавит’);

end;

End.

Задача 2. Мастям игральных карт условно присвоены следующие порядковые номера: «пики»-1, «трефы»-2, «бубны»-3, «червы»-4. По заданному номеру масти m (1£m£4) определить название соответствующей масти.

Program mast;

var m:integer;

begin

write(‘введите номер масти’); readln(m);

case m of

1: writeln(‘пики’);

2: writeln(‘трефы’);

3: writeln(‘бубны’);

4: writeln(‘червы’)

else writeln(‘вы ввели неправильный номер’);

end;

end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow