Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет по лаб. №5

..doc
Скачиваний:
15
Добавлен:
09.12.2013
Размер:
32.77 Кб
Скачать

Пермский государственный технический университет

кафедра Информационных технологий и автоматизированных систем

Отчет по

Лабораторной работе №5

«Массивы. Множества. Работа с псевдослучайными последовательностями»

По дисциплине «Информатика»

Выполнил студент группы АУЦ-10

Рычин В. Проверил ассистент кафедры ИТАС

Баранов А.А.

Пермь 2010

Задача

Выделить цветом и подсчитать число слов удовлетворяющих условиям:

1. Слово содержит 3 согласные буквы и хотя бы 2 гласные.

2. Слово принадлежит столбцу, в котором в сумме нечетное количество букв.

K=2, L=7, M=20, N=10;

С помощью ПСП сформировать двухмерный MxN массив из элементов. В качестве элементов использовать слова из K..L символов A..Z (одномерный массив символов латинского алфавита). Осуществить подсчет элементов, удовлетворяющих условиям задания. Проверку заданных условий поиска реализовать с использованием типа множества. Вывести на экран сформированный массив в виде таблицы, выделив цветом подсчитанные элементы. Результат подсчета вывести на экран в отдельном окне.

(Здесь: M и N - соответственно число строк и столбцов формируемой

таблицы; K и L - соответственно минимальное и максимальное число букв в формируемых словах - элементах массива).

uses crt;

const

K=2;

L=7;

M=20;

N=10;

AA=Ord('A'); {код буквы А в таблице символов}

ZZ=Ord('Z'); {код буквы Z в таблице символов}

gl=['A','E','I','O','U','Y'];

sgl=['B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Z'];

var

mas: array [1..M,1..N] of string[L];

i,j,t,p,q, {счетчики циклов}

len, {длина текущей строки=элемента матрицы (K..L)}

ss,kg,ks, {кол. букв в столбце, кол. гласных и согласных в слове}

kol: byte; {кол-во слов, удовлетвлоряющих условию }

begin

clrscr;

randomize;

for i:=1 to M do

for j:=1 to N do

begin

len:=random(L-K+1)+K;

mas[i,j]:=''; {строка соответствующая сначала пустая}

for t:=1 to len do {затем добавляем по одному к ней символы в количестве len}

mas[i,j]:=mas[i,j]+Char(random(ZZ-AA+1)+AA); {псевдослучайные от A до Z}

end;

TextColor(0); {цвет текста по умолчанию}

kol:=0; {пока не нашли ни одного подходящего слова}

for j:=1 to N do {идем по столбцам}

begin

ss:=0;

for i:=1 to M do {считаем буквы в столбцах}

ss:=ss+length(mas[i,j]);

if ss mod 2<>0 then{если нечетное количество букв}

for p:=1 to M do {снова по этому столбцу}

begin

kg:=0;ks:=0;

for q:=1 to length(mas[p,j]) do {смотрим каждое слово}

begin

if mas[p,j][q] in gl then kg:=kg+1; {считаем гласные}

if mas[p,j][q] in sgl then ks:=ks+1; {считаем согласные}

end;

if (kg>=2) and (ks=3) then {если гласных хотя бы 2 и 3 согласных}

begin

TextColor(red); {меняем цвет на красный}

write(mas[p,j]:8); {выводим красным}

kol:=kol+1; {считаем количество}

TextColor(15); {цвет по умолчанию}

end

else write(mas[p,j]:8); {выводим обычные слова в этом столбце}

end

else

for i:=1 to M do

write(mas[i,j]:8); {выводим обычным столбцы где сумма букв не кратна 3}

end;

window(50,23,78,25);{новое окно}

TextBackGround(14); {цвет фона}

TextColor(15); {цвет текста}

readln;

clrscr;

write('Kolichestvo slov=',kol);{это надо в отдельном окне}

readln

end.

Соседние файлы в предмете Информатика