Текст программы к задаче №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