Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-методическое пособие «Информатика»..pdf
Скачиваний:
5
Добавлен:
05.02.2023
Размер:
683.82 Кб
Скачать

18.Написать программу нахождения наибольшего общего делителя четырех положительных целых чисел. Числа вводятся с клавиатуры.

19.Сосчитать количество единиц в двоичной записи числа i.

20.Написать программу проверки умения складывать и вычитать числа в пределах 100. Программа должна вывести 10 примеров, причем в каждом примере уменьшаемое должно быть больше или равно вычитаемому, т. е. не допускается предлагать испытуемому примеры с отрицательным результатом. Оценка выставляется по следующему правилу: за 10 правильных ответов

"отлично", за 9 и 8 —"хорошо", за 7 и 6 — "удовлетворительно", за 6 и менее — "плохо". Ниже представлен рекомендуемый вид экрана во время работы программы. Ответы пользователя выделены полужирным шрифтом.

Проверка умения складывать и вычитать числа. После примера введите ответ и нажмите <Enter>

75-4=71

35-9=29

Вы ошиблись! 35-9=26 14-1=13

6-5=1

37-19=28

Вы ошиблись! 37-19=18 53-14=39 94-87=7 90-16=74 4-2=2 89-41=48

Правильных ответов: 8 Оценка: Хорошо

4. Тема практического занятия «Символьный и строковый тип»

Приступая к решению задач этого раздела, следует вспомнить, что:

каждому символу соответствует число — код символа;

получить доступ к отдельному символу строки можно, указав его номер в квадратных скобках после имени переменной (строки).

26

Примеры решения задач

1. Дана строка символов. Группы символов в ней между группами пробелов считаются словами. Посчитать, сколько слов содержит данная строка.

var

s: string;

i, k: integer; begin

writeln('Введите строку'); readln(s);

k:=0;

i:=1;

while i<=length(s) do begin

{пропускаем пробелы}

while (s[i]=' ') and (i<=length(s))do i := i+1;

if i<=length(s) then k := k+1; {ищем новый пробел}

while (s[i]<>' ') and (i<=length(s)) do i := i+1;

end;

writeln('количество слов =',k) end.

Для решения задачи:

-формируем тело программы и описываем переменные;

-вводим строку s;

-на каждом шаге внешнего цикла отыскиваем очередное слово в строке и

увеличиваем счетчик слов;

-выводим результат на экран.

Переменные:

i - вспомогательная переменная; s - строка текста;

k - счетчик слов.

27

Задачи для индивидуального решения

1.Дана строка символов. Удалить из нее все знаки препинания.

2.Для заданных трех строк S1, S2 и S3 определить какая из этих строк является палиндромом.

3.Написать программу, которая проверяет, является ли введенная с клавиатуры строка двоичным числом.

4.Написать программу, которая проверяет, является ли введенная с клавиатуры строка шестнадцатеричным числом.

5.Написать программу, которая проверяет, является ли введенная с клавиатуры строка дробным числом.

6.Ввести две строки S1 и S2, состоящие только из цифр. Определить в какой строке сумма цифр большая.

7.Даны две строки S1 и S2. Создать строку, состоящую из символов, входящих либо в S1, либо в S2, но не в обе сразу.

8.Для двух заданных строк, состоящих только из цифр и начинающихся 0, найти строку - сумму чисел, представленных данными строками.

9.Из данной строки удалить все цифры и малые латинские

буквы.

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

первой заданной строке удваивается каждый символ,

принадлежащий также второй строке.

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

12.Составить программу, в результате выполнения которой из первой заданной строки удаляется каждый символ, принадлежащий второй строке.

13.В данной строке удвоить все цифры и малые латинские

буквы.

14.Составить программу, в результате выполнения которой

впервой заданной строке удваивается каждый символ, не принадлежащий второй строке.

15.Даны две строки. Создать строку, состоящую только из символов, общих для двух данных строк.

16.Для каждой цифры '0', '1',..., '9' подсчитать количество вхождений в данную строку S.

28

17.Для каждой малой латинской буквы 'a', 'b', 'c',..., 'z' напечатать количество вхождений в данную строку S.

18.Дана строка, состоящая из слов. Напечатать те слова,

которые являются палиндромами.

19.Русский шифр 15-16 веков:

Все согласные буквы русской азбуки записывались в два ряда; одна половина букв вверху, другая половина внизу, причем в обратном порядке (одна буква под другой),

Б В Г Д Ж З К Л М Н Щ Ш Ч Ц Х Ф Т С Р П

При зашифровке слов согласные взаимно заменялись, а остальные буквы вписывались без изменений. Написать программу шифровки и дешифровки текста.

5.Лабораторная работа по теме «Работа с линейными массивами»

Цель работы:

1)Научиться составлять и отлаживать программы на языке

Pascal

2)Практически освоить основные принципы работы с линейными массивами в языке программирования

Pascal.

Приступая к выполнению данной работы, следует вспомнить, что:

массив — это структура данных, представляющая собой совокупность элементов одного типа;

массив должен быть объявлен в разделе объявления переменных;

при объявлении массива удобно использовать именованные константы;

доступ к элементу массива осуществляется путем указания индекса (номера) элемента, в качестве которого можно использовать выражение целого типа, например, целую константу или переменную типа integer;

для ввода, вывода и обработки массивов удобно применять ИНСТРУКЦИИ ЦИКЛОВ (for, while, repeat).

29

Отчет по данной работе должен содержать

1)Цель работы

2)Распечатку программы и результатов работы программы

3)Выводы

Пример решения задачи

1. Дан массив чисел. Найти, сколько в нем пар одинаковых соседних элементов.

const m=100; var

mas: array [1..m] of integer; i, k, n : integer;

begin

write('Введите размер массива n='); readln(n);

k:=0;

for i:=1 to n do begin

write('Введите элемент массива'); readln(mas[i]);

end;

for i:=1 to n-1 do

if mas[i]=mas[i+1] then k:=k+1; writeln('Одинаковых пар соседних элементов ',k); readln;

end.

Для решения задачи:

-формируем тело программы и описываем переменные;

-вводим длину массива n, значение элементов массива и устанавливаем начальное значение k;

-последовательно просматриваем элементы, и если очередной mas[i] равен

следующему mas[i+1], то увеличиваем значение k на единицу;

-выводим результат.

Переменные:

mas - массив чисел;

30