Текст программы к задаче №44
Содержание
1 Введение. 3
2 Анализ задач №7 и №44. 4
3 Решение задачи №7. 4
3.1 Описание переменных. 4
3.2 Формальное описание алгоритма. 4
3.3 Текст программы к задаче №7. 4
3.4 Блок-схема к задаче № 7. 5
4 Решение задачи №44. 6
4.1 Описание переменных и констант. 6
4.2 Формальное описание алгоритма. 6
4.3 Текст программы к задаче №44. 6
4.4 Блок-схема к задаче №44. 7
4.5 Тестирование программы №44. 7
Вывод. 8
Введение
При решении задач данной лабораторной работы необходимо использовать тип данных «Множество»
Значение множественного типа строится из нескольких значений базового типа. Базовым типом множества может быть любой конечный скалярный тип, состоящий не более чем из 256 элементов.
Задание множества:
Служебное слово set of
Пример:
Type
Digits = set of 1..9;
Var
S:= digits;
Особенности:
- все значения базового типа в множестве должны быть различны;
- порядок «расположения» элементов не фиксируется;
- Базовый тип может быть: символьный, перечислимый, ограниченный.
Возможные операции:
- объединение;
- пересечение;
- разность множеств;
- добавление\исключение элемента во множество.
Анализ задач №7 и №44
Задача№7
Дана строка. Подсчитать сумму цифр, не входящих в данную строку. Для решения задачи необходимо описать переменные, найти способ решения задачи, составить алгоритм.
Задача№44
Дана строк. Найти наибольшее количество цифр, идущих подряд. Для решения задачи необходимо описать переменные, найти способ решения задачи, составить алгоритм.
Решение задачи №7
Описание переменных
s: string(строковый);
i: integer(целочисленный);
digits: set of char(множественный);
sum: integer(целочисленный);
Формальное описание алгоритма
Шаг 1 – задать строку цифр
Шаг 2 – отыскать цифры, не входящие в заданную строку
Шаг 3 – суммировать цифры, не входящие в заданную строку
Шаг 4 – вывести сумму на экран.
Текст программы к задаче №7
Program lab6;
Var
s: string;
i: integer;
digits: set of char;
sum: integer;
Begin
digits:= ['0'..'9'];
Writeln('Введите строку цифр');
readln(s);
for i:= 1 to length (s) do
if s[i] in digits then
digits:= digits-[s[i]];
sum:= 0;
for i:= 1 to 9 do
if chr (ord('0')+i) in digits then
sum:= sum+i;
writeln (sum);
readln;
End.
3.4 Блок-схема к задаче № 7
| |||||||
Решение задачи №44
Описание переменных и констант
S: string(строковый);
MaxN, CurN, i : logint (длинный целый)
Const
Digits : set of char (множество).
Формальное описание алгоритма
Шаг 1: задать строку цифр;
Шаг 2: найти в строке цифры, идущие подряд и подсчитать их количество;
Шаг 3: вывести на экран количество цифр, идущих подряд.
Текст программы к задаче №44
Program L6Z44;
Const
Digits : set of char = ['0','1','2','3','4','5','6','7','8','9'];
Var
s: string;
MaxN, CurN, i : longint;
Begin
Writeln('Введите строку: ');
Readln(s) ;
MaxN := 0;
CurN := 0;
for i:=1 to length (s) do
if s[i] in Digits then
Inc(CurN)
else begin
if CurN>MaxN then MaxN:=CurN;
CurN:=0;
end;
Writeln('Наибольшее количество цифр идущих подряд: ',MaxN:1);
Readln;
End.
Блок-схема к задаче №44