Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Задачи для дополнительного решения (на усмотрение учителя)

Поиск

1. Составьте программу вычисления суммы мест, на которых в слове Х стоят буквы "в" и "п".

2. Дана строка символов. Дано слово. Удалить из строки это слово.

3. Дана строка символов. Выделить подстроку между первой и второй точкой.

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

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

Занятие 5. Контрольная работа

Вариант 1

1. Результатом вычисления функции Copy('программирование',4,5) будет слово

a) миров

b) грамм

c) программ

d) программа

e) грамми

2. Результатом работы программы:

Var x: string[6];

Begin

x:= ‘мим’+’озадаченный’; writeln(x);

End.

будет слово:

a) мим озадаченный

b) мимозадаченный

c) мимоза

d) озадаченный мим

e) озадаченныймим

3. Составьте подпрограмму для решения задачи:

Выясните, какая из букв (первая или последняя) встречается в заданном слове чаще.

Вариант 1I

1. Результатом работы программы:

Program DemoUpcase;

Var

Word: string;

i: Byte;

Begin

Word:= 'фирма Microsoft';

for i:= 1 to Length (Word) do

Word[i]:= UpCase (Word[i]);

writeln(Word); {выводится текст 'фирма MICROSOFT'}

End.

будет предложение:

a) 'Фирма MICROSOFT'

b) 'ФИРМА MICROSOFT'

c) 'фирма Microsoft

d) 'фирма MICROSOFT'

e) 'фирма microsoft

2. Вызывая функцию Copy не нужно указывать:

a) •имя строки, из которой должен извлекаться копируемый фрагмент,

b) •позицию в строке, начиная с которой будет копироваться фрагмент,

c) •число копируемых символов;

d) имя строки, в которую копируется данный фрагмент

e) имя функции.

3. Составьте подпрограмму для решения задачи:

Сколько букв "у" в слове стоит на четных местах?

Вариант III

1. Результатом работы программы:

Program DemoFunctionLength;

Var

Word: string[9];

Begin

Word:= 'Ялюблюпрограммировать';

writeln(Length (Word));

End.

будет:

a) 9

b) 23

c) 'Ялюблюпрограммировать'

d) 'Ялюблю'

e) 256

2. Результатом работы программы:

Program DemoFunctionPos;

Var

Word: string;

SearchWord: string[20];

Position: Byte;

Begin

Word:= 'Карл у Клары украл кораллы. Клара у Карла украла кларнет.';

SearchWord:= 'Карл';

Position:= Pos(SearchWord, Word);

writeln (Position);

End.

будет:

a) 1 и 37

b) 37

c) 28

d) 1

e) 0

3. Составьте подпрограмму для решения задачи:

Вычеркните i-ые буквы текста и посчитайте в нем количество введенных повествовательных предложений.

Вариант 1V

1. Встроенная функция Length позволяет определить: (а не, установленную при декларации):

a) фактическую длину текстовой строки, хранящейся в указанной переменной,

b) величину предельного размера строки,

c) предполагаемую величину строки,

d) начальную длину строки,

e) длину строки, заранее заданную пользователем.

2. Результатом работы программы:

Program DemoFunctionConcat;

Var

Word: string;

Word1, Word2: string[20];

Begin

Word1:= 'Microsoft';

Word2:= 'фирмы';

Word:= Concat('Компьютеры ',Word1,Word2);

writeln(Word);

End.

будет текст:

a) ' фирмыКомпьютеры Microsoft',

b) ' Microsoft Компьютеры фирмы ',

c) 'Компьютеры фирмы Microsoft',

d) 'КомпьютерыMicrosoftфирмы ',

e) 'КомпьютерыMicrosoftфирмы '.

3. Составьте подпрограмму для решения задачи:

Вычеркните из слова Х те буквы, которые встречаются в слове Z.

Вариант V

1. При подсчете фактической длины строки

a) учитываются все входящие в нее символы,

b) учитываются все входящие в нее символы, кроме пробелов,

c) учитываются не все входящие в нее символы,

d) учитываются все входящие в нее символы, исключая служебные символы,

e) учитываются все входящие в нее символы, имеющиеся на клавиатуре.

2. Результатом работы программы:

Program DemoProcedureStr;

Var

Word: string;

Chislo: integer;

Begin

Chislo:= 1560;

Str(Chislo:8, Word);

writeln(Word);

End.

будет текст:

a) '1500',

b) ' 1560',

c) ' 1560',

d) 100000000',

e) '00001560'.

3. Составьте подпрограмму для решения задачи:

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

Вариант V1

1. C помощью функции Pos Вы можете осуществить поиск некоторого фрагмента в строке. Если заданный фрагмент в строке присутствует, то:

a) функция возвращает количество фрагментов в строке,

b) функция возвращает нуль,

c) функция вырезает найденный фрагмент из строки,

d) функция заменяет найденный фрагмент на введенный ранее,

e) функция возвращает номер позиции, с которой начинается фрагмент.

2. Результатом работы программы:

Program DemoProcedureVal;

Var

Word: string;

Chislo, Code: integer;

Begin

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

readln(Word);

Val(Word, Chislo, Code); {преобразование строки в число}

if Code <> 0

then

writeln(‘??????????????’);

End.

должно быть следующее сообщение:

a) 'Ошибка! В позиции ',Code,' не ноль!',

b) 'Ошибка! Цифра Code,' не закодирована!',

c) 'Прекрасно! Число в переменной ',Code,'!',

d) 'Ошибка! В позиции ',Code,' не цифра!',

e) 'Прекрасно! Число в переменной ', Chislo,'!'.

3. Составьте подпрограмму для решения задачи:

Составьте программу вычисления суммы мест, на которых в слове Х стоят буквы "в" и "п".

 

Сформулируйте тексты решенных ниже задач

Примечание. При анализе алгоритмов Вам потребуются знания о некоторых операторах. В будущем применяйте их при решении задач.

GoTo – оператор, устанавливающий курсор в заданное параметрами знакоместо в текстовом режиме. Первый параметр – номер столбца, второй – номер строки. Общее количество строк 25, а столбцов – 80.

Delay – оператор задержки вывода на экран информации. Параметр равный 1000 соответствует 1 секунде.

Sound – оператор, включающий динамик компьютера с заданной частотой в виде параметра.

NoSound – оператор, выключающий динамик.

DelLine – оператор, выводящий строку из пробелов в строку, в которой находится курсор.

Window – оператор, организующий окно в текстовом режиме с координатами верхнего левого и правого нижнего углов, переданными как параметры.

Задача 1.

Program MiskovVadim;

Var

i, k,x: integer;

a, b, c: string;

Begin

write('введите строку>');

readln(a);

k:= length(a);

repeat

for i:= 1 to 2 do

c:=c+b;

x:=x+1;

b:=Copy(a,x,1);

until x=k+1;

writeln ('Ваше слово - ',s);

End.

 

Задача 2.

Program AlexeyDashkin;

Type

Stroka = string [100];

Var

Vhod, St1, InStr: Stroka;

Begin

St1:= ' Поставьте мне пятерку в зачетку!!!!';

ClrScr;

InStr:= ' ';

St1:= St1+InStr;

for i:= 1 to length(St1) do

begin

Delete(St1,1,1);

GoTo(1,10);

write(St1);

Delay(500);

Sound(1000);

Delay(900);

NoSound;

DelLine;

end;

End.

 

Задача 3.

Program AkulovE;

Var

y,i: integer;

Name, Bukva: string;

Begin

write ('Введите что-нибудь ');

read (Name);

for i:= Length(Name) downto 1 do

begin

Bukva:= Name[i];

Delete(name,i,1);

for y:= 1 to 25 do

begin

Window(19,1,80,25);

GotoXY(i,y);

write(Bukva);

Delay(500);

ClrScr;

write(Name);

end;

end;

End.

Выберите с учителем задачи для самостоятельного решения:

1. Дана строка текста. В данной строке поменять местами каждые два слова из четырех первых. Если количество слов меньше заданного, то вывести об этом сообщение.

2. В заданном тексте найти и распечатать слово максимальной длины.

3. Написать (в порядке появления в тексте) все слова, длина которых попадает в интервал [X, Y]. Здесь X и Y целые числа, задающиеся пользователем.

4. В данном предложении найти количество слов, содержащих удвоенную согласную (буквы латинские). Слова в предложении разделяются пробелами, в конце предложения - точка.

5. Предложите пользователю ввести дату в предложенном формате ДД-ММ-ГГ. День и месяц могут быть указаны одиночными числами, т.е. 1-5-94, а не 01-05-94. Выделите числа представляющие день, месяц и год, и выведите каждое число с соответствующей поясняющей надписью на экран.

6. Предложите пользователю ввести число в интервале от 1 до 5 включительно. Ваша программа должна позволять пользователю вводить любую последовательность символов. Организуйте проверку ввода, и если ввод не длиннее одного символа, либо нецифровой, либо не попадает в допустимый интервал, тогда выведите сообщение об ошибке. Если ввод неправилен, тогда предложите пользователю повторить попытку.

7. Даны два текста А и Б. Проверьте, можно ли из букв, входящих в А, составить Б. (Буквы можно переставлять, но каждую букву можно использовать не более одного раза).

8. В строке, любое количество подряд следующих пробелов замените единственным пробелом.

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

10. Написать (в порядке появления в тексте) все слова, длина которых попадает в интервал [X, Y]. Здесь X и Y целые числа, указывающие, соответственно, наибольшую и наименьшую длину

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

Занятие 6. Решение задач.

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

1. В тексте содержащем, несколько (много) предложений, найти все вхождения заданного слова и распечатать все включающие его предложения. Принять, что каждое предложение заканчивается точкой.

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

3. Дан текст, состоящий из нескольких предложений. В каждом предложении найти самое короткое и самое длинное слова.

4. Дан текст. Посчитать количество слов в тексте.

5 Дан текст. Посчитать количество слов, заканчивающихся на заданную букву и перенести их в другую строку, написав через запятую. Вывести полученную строку на экран.

6. Даны 2 текста. Найти одно из общих слов, встречающихся в текстах.

7. Напишите программу, изменяющую порядок слов в строке по Вашему алгоритму.

8. Для каждого слова заданного предложения указать долю согласных. Определить слово в котором доля согласных максимальна.

9. Составьте программу шифрования текстового сообщения. Можно использовать такой способ шифровки. Шифровальщик задает ключ шифровки - целое число, которое определяет величину смещения букв русского алфавита, например ключ =3, тогда в тексте буква “а” заменяется на “г” и т.д. Используются все буквы русского алфавита.

10. В заданном предложении удалите каждое второе слово, а оставшиеся слова переверните. (Например, из текста “А роза упала на лапу азора” должен получиться текст “азор ан ароза”).

11. Составьте программу дешифрования текстового сообщения, зашифрованного программой задачи № 9.

В заданном предложении указать слово, в котором доля гласных (A, E, I, O) максимальна. Слова удобно хранить в строковом массиве.

Задание. Приготовьте для проверки учителем все Ваши листинги и файлы с решенными и оцененными задачами по данной теме.

Для увлеченных программированием. Бегущая строка. Пример программы осыпающихся букв. Строки в графическом режиме.

Задание. Перед Вами две программы. Рассмотрите операторы, какова их роль?

Program AlexeyDashkin;

Uses

Crt;

Type

Stroka = string [100];

Var

Vhod, St1, InStr: Stroka;

Begin

St1:= ' Поставьте мне пятерку в зачетку!!!!';

ClrScr;

InStr:= ' ';

St1:= St1+InStr;

for i:= 1 to length(St1) do

begin

Delete(St1,1,1);

GoTo(1,10);

write(St1);

Delay(5);

Sound(1000);

Delay(90);

NoSound;

DelLine;

end;

End.

Program AkulovE;

Uses

Crt;

Var

y,i: integer;

Name, Bukva: string;

Begin

ClrScr;

write ('Введите что-нибудь ');

read (Name);

for i:= Length(Name) downto 1 do

begin

Bukva:= Name[i];

Delete(name,i,1);

for y:= 1 to 25 do

begin

Window(19,1,80,25);

GotoXY(i,y);

write(Bukva);

Delay(50);

ClrScr;

write(Name);

end;

end;

End.

Задание.

1) Наберите программы на компьютере. Проверьте их работу.

2) Усовершенствуйте одну из программ, дополните ее комментариями. Покажите результат работы учителю для оценки.

3) Решите одну из задач в графическом режиме. Покажите результат работы учителю для оценки.


Множества

 

Занятие 1. Множественный тип данных. Множество. Элемент множества. Способы задания множества. Объединение множеств. Разность множеств. Пересечение множеств.

Множественный тип данных напоминает перечислимый тип данных. Вместе с тем, множество – набор элементов, не организованных в порядке следования. В математике множество – любая совокупность элементов произвольной природы. Понятие множества в программировании значительно уже математического понятия.

Определение. Под множеством в Паскале понимается конечная совокупность элементов, принадлежащих некоторому базовому типу.

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

Такие ограничения связаны с формой представления множества в языке и могут быть сведены к тому, что функция Ord для используемого базового типа должна быть в пределах от 0 до 255.

Множество имеет зарезервированное слово set of и вводится следующим описанием

Type

< имя типа > = set of < имя базового типа >;

Var

< идентификатор,... >:< имя типа >;

Рассмотрите примеры описания множеств:

Type

SetByte = set of byte; {множество 1, определённое над типом byte}

SetChisla = set of 10... 20; {множество 2, определённое в диапазоне от 10 до 20

Symbol = set of char; {множество, определённое на множестве символов}

Month = (January, February, March, April, May, June, July, August, September, October, November, December);

Season: set of Month; {тип множества, определённый на базе перечислимого типа Month}

Var

Letter, Digits, Sign: Symbol {множествa, определённые над символьным типом}

Winter, Spring, Summer, Autumn, Vacation, WarmSeason: Season;

Index: SetChisla=[12, 15, 17];

Operation: set of (Plus, Minus, Mult, Divid);

Param: set of 0..9=[0, 2, 4, 6, 8];

Для переменных типа множества в памяти отводится по 1 биту под каждое возможное значение базового типа. Так, под переменные Letter, Digits, Sign будет отведено по 256/8=32 байта. Для переменной Winter, базовый тип которой (Month) имеет 12 элементов, необходимо 2 байта, причем второй используется только наполовину. Если множество содержит какой-то элемент, то связанный с ним бит имеет значение 1, если нет – 0.

Для того, чтобы дать переменной множества какое-то значение, используют либо конструктор множества – перечисление элементов множества через запятую в квадратных скобках

Sign:=['+', '–'];

Spring:=[March, April, May];

b:=[ 'k', 'l', 'd' ]

либо определение через диапазон. Тогда в множество включены все элементы диапазона

Digits:=['0'..'9'];

WarmSeason:= [May.. September];

Обратите внимание, что в определении множества Digits использованы символы в таблице ASCII-кодов, а не целые числа.

Обе формы конструирования могут сочетаться:

Vacation:=[January, February, June.. August];

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

{постоянное множество допустимых символов

Const

YesOrNo = ['Y', 'y', 'N', 'n'];

{множества – типизированные константы}

Const

Digits: set of char=['0'..'9'];

DigitsAndLetter: set of char=['0'..'9', 'a'..'z', 'A'..'Z'];

{применение операции "+" для объявления множества-константы}

Const

Yes = ['Y', 'y'];

No = ['N', 'n'];

YesOrNo = Yes+No;

Объединение множеств (+)

Определение. Объединением 2-х множеств называется третье множество, которое содержит элементы, которые принадлежат хотя бы одному из множеств операндов, при этом каждый элемент входит в множество только один раз.

Объединение множеств записывается как операция сложения.

Type

Symbol = set of char;

Var

SmallLatinLetter, CapitalLatinLetter, LatinLetter: Symbol;

Begin

......

SmallLatinLetter:=['a'..'z'];

CapitalLatinLetter:= ['A'..'Z'];

LatinLetter:= SmallLatinLetter+CapitalLatinLetter;

......

End.

В операции объединения множеств могут участвовать и отдельные элементы множества.

Например, допустима следующая запись, где два элемента и множество объединяются в новое множество:

WarmSeason:= May+Summer+September;

или другая запись

B: = B+['c'],

которую можно применить для организации множества в цикле, если заменить множество ['c'] переменной Sim того же типа, что и множество B, и считывать с клавиатуры данные в переменную Sim, а затем объединяя с множеством В.

B: = B+Sim,

Разность множеств (-)

Определение. Разностью 2-х множеств является третье множество, которое содержит элементы 1-го множества, не входящие во 2-е множество.

a: = a–[ 'd' ]

Если в вычитаемом множестве есть элементы, отсутствующие в уменьшаемом, они не влияют на результат.

Summer:= WarmSeason–Spring–Autumn;

Summer:= WarmSeason–May–September;

Модуль System содержит процедуры для включения элемента в множество

Include (Var S: set of T; Element: T);

и исключения из множества

Exclude (Var S: set of T; Element: T);

где S – множество элементов типа Т, а Element – включаемый элемент.

Эти функции отличаются от операций объединения и вычитания множеств только скоростью исполнения.

Пересечение множеств

Определение. Пересечением множеств называется множество, содержащее элементы одновременно входящие в оба множества операндов. Операция обозначается знаком умножения.

Summer:= WarmSeason*Vacation;

Задание. В своей тетради опишите множества М1 и М2 произвольным образом. Получите результирующие множества (запишите какие элементы будут содержать эти множества).

а) М3=М1+М2;

б) М3=М1*М2;

в) М3=М1-М2.



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 259; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.181.69 (0.014 с.)