Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Паскаль-переплет.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
626 Кб
Скачать
☆

§10. Эксперимент с программой. Лабораторная работа

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

-

3994

0

1

399

0*10+3994 mod 10= 0+4=4

2

39

4*10+399 mod 10=40+9=49

3

3

49*10+39 mod 10=490+9=499

4

0

499*10+3 mod 10=4990+3=4993

Program ex1;

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)