Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Praktikum_po_Turbo_Paskaliu.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.39 Mб
Скачать

Трассировка примера

Рассмотрим выполнение этой программы в пошаговом режиме для числа 65387:

n

m

k

65387

65387

0

65387

6538

1

65387

653

2

65387

65

3

65387

6

4

65387

0

5

В результате работы программы на экране появится предложение:

В числе 65387 - 5 цифр!

Пример:

Дана непустая последовательность натуральных чисел, за которой следует 0. Составить программу поиска в данной непустой последовательности порядкового номера наименьшего элемента.

Решение

Обозначим через x, i - очередной член последовательности и его номер; min, k - минимальный член последовательности и его номер. Считывание членов последовательности производится до тех пор, пока не будет введен 0, то есть пока x<>0. Начальное значение минимума определяется значением первого члена последовательности. Очередное вводимое число требуется сравнивать с текущим значением минимума, и если текущее значение min окажется больше очередного члена последовательности, то его нужно изменить. Учитывая вышесказанное, составим программу:

Program Example_9; Var x, i, min, k : Integer; Begin Writeln('Введите первый член последовательности'); Read(x); k:=1; min:=x; i:=2; While x<>0 Do Begin If x<min Then Begin min:=x; k:=i End; Writeln (' Введите ',i,' элемент последовательности'); Read(x); Inc(i); End; Writeln('Номер минимального элемента - ', k); End.

Решение задач

  1. Дана последовательность операторов:

a := 1; b := 1; while a + b < 8 do Begin a :=a + 1; b := b + 2 End; s := a + b

Сколько раз будет повторен цикл и какими будут значения переменных a, b и s после завершения этой последовательности операторов?

  1. Какими будут значения переменных a и b после выполнения операторов:

a := 1; b := 1; While a <= 3 Do a := a + 1; b := b + 1.

  1. Определить значение переменной s после выполнения следующих операторов:

 

    1. s := 0; i := 0; While i<5 Do Inc(i); s := s + 100 Div i;

    2. s := 0; i := 1; While i>1 Do Begin s := s + 100 Div i; dec(i) End;

 

  1. Дана последовательность операторов, вычисляющих факториал f числа n:

k := 1; f := 0: While k<n Do f := f * k k := k + 1;

которая содержит пять ошибок. Найдите эти ошибки.

  1. Найдите и исправьте ошибки в следующем фрагменте программы, определяющей для заданного натурального числа n число, записанное цифрами числа n в обратном порядке.

p := n; While p>=0 Do Begin a := a + p Mod 10; p := p Div 10 End;

  1. Найти сумму цифр числа.

  2. Найти первую цифру числа.

  3. Приписать по 1 в начало и в конец записи числа n. Например, было n=3456, стало n=134561.

  4. Поменять местами первую и последнюю цифры числа.

  5. Поменять порядок цифр числа на обратный. Например, было 12345, стало 54321.

  6. Найти количество чётных цифр целого положительного числа.

  7. Найти самую большую цифру целого числа.

  8. Найти сумму цифр целого числа, больших 5.

  9. Сколько раз данная цифра встречается в целом числе?

  10. Составить программу, проверяющую, является ли последовательность из 10 целых чисел, вводимых с клавиатуры, возрастающей.

  11. Составить программу, проверяющую, является ли заданное натуральное число палиндромом, то есть таким, десятичная запись которого читается одинаково слева направо и справа налево.