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

Рацеев.Лабораторные по информатике

.pdf
Скачиваний:
80
Добавлен:
18.04.2015
Размер:
680.77 Кб
Скачать

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Информатика»

 

 

 

 

 

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

3.Напечатать в алфавитном порядке по первой букве слова, содержащие ДВОЙНЫЕ символы и начинающиеся с большой буквы. Напечатать самую длинную регулярную цепочку, которая состоит из одинаковых символов.

4.Напечатать слово, содержащее наибольшее количество цифр и слово с наибольшим количеством знаков. Напечатать количество слов, содержащих два знака или более и найти сумму всех цифр последовательности.

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

вкоторых чередуются гласные и согласные буквы, и напечатать их в алфавитном порядке. Напечатать в перевернутом виде самое длинное слово, состоящее только из цифр и букв.

6.Найти количество регулярных цепочек во всех словах и напечатать их в перевернутом виде в алфавитном порядке. Напечатать все слова, представляющие собой изображения арифметических выражений, т. е. чередующиеся ЧИСЛА и знаки арифметических операций. Например:

34*67+7-125/96.

7.Найти количество слов, содержащих более одной цифры, и исключив все знаки из этих слов, напечатать их. Напечатать в алфавитном порядке слова,

вкоторых чередуются цифры и буквы.

8.Определить количество слов, которые имеют заданную цепочку символов и хотя бы одну цифру, и напечатать их. Напечатать в порядке возрастания все ЧИСЛА, встретившиеся в словах.

9.Определить количество слов, содержащих и буквы, и цифры, и знаки. Напечатать их. Напечатать слово, содержащее самую длинную цепочку из цифр, если только она симметричная.

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

11.В словах заменить указанную цепочку длиной не более 30 символов на заданную цепочку меньшей длины, (например: АВС на ТЕ), и напечатать эти слова. Найти количество слов, содержащих и знаки, и цифры, и буквы. (Большие и малые буквы не различаются).

12.Найти количество слов, содержащих указанное количество и тип знака, (например, 5+,6*,8/), и напечатать эти слова в перевернутом виде. Так, если ввести ‘3:’, то слово ‘A::89:-5’, содержащее три знака двоеточия, будет удовлетворять поставленному условию. Напечатать все слова, представляющие собой двойные фамилии, т. е. два слова из букв, разделенные знаком тире и начинающиеся с больших букв.

13

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Информатика»

 

 

 

 

 

13.Найти в последовательности самое длинное слово, являющееся регулярной цепочкой и, удалив все гласные буквы, напечатать его. Определить, есть ли в последовательности слова, в которых нет или только цифр, или только знаков, и напечатать их.

14.Подсчитать количество слов, состоящих из одинаковых букв или одинаковых цифр. Напечатать в перевернутом виде слова, имеющие хотя бы один знак и имеющие в начале слова и в конце одинаковую букву.

15.Напечатать в алфавитном порядке все слова, которые начинаются с большой буквы и заканчиваются заданной цепочкой из трех символов. Определить количество слов, содержащих все символы заданной цепочки, и напечатать порядковые номера этих слов.

16.Напечатать в алфавитном порядке все слова, имеющие в своем составе заданную цепочку из произвольного набора символов. Определить количество слов, которые не имеют в своем составе ни одного символа такой цепочки, и напечатать эти слова.

17.Напечатать в алфавитном порядке все симметричные слова, удалив предварительно из них символы цифр. Напечатать слова, состоящие только из СЛОГОВ.

18.Найти все слова, содержащие ЧИСЛА от 10 до 99, и подсчитать их сумму. Напечатать слова, не имеющие цифр, в алфавитном порядке, удалив предварительно из них кратные символы.

19.Подсчитать количество слов последовательности, начинающихся с большой буквы и оканчивающихся цифрой. Напечатать слова, содержащие задаваемую цепочку символов и хотя бы один знак.

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

21.Подсчитать в последовательности количество слов, сумма цифр в которых равна заданному целому числу, и напечатать их. Напечатать слова, которые можно перенести, т. е. вставить между СЛОГАМИ знак переноса.

Например: Pa-na-so-nic.

22.Напечатать все pегуляpные слова по следующему закону: каждая цепочка кpатных символов в слове заменяется на изобpажение десятичного числа, равного длине обнаpуженной цепочки кpатных символов. Слова, не являющиеся pегуляpными, выводиться не должны. Определить количество СЛОГОВ в последовательности.

23.Напечатать в алфавитном порядке слова, которые содержат хотя бы один знак и заканчиваются заданной цепочкой из двух символов. Определить количество слов, содержащих все символы заданной цепочки.

24.Найти количество регулярных цепочек во всех словах, состоящих только из символов букв и цифр, и напечатать их. Напечатать в перевернутом виде

14

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Информатика»

 

 

 

 

 

слова, содержащие подобные цепочки, если длина цепочки не превышает 6 символов.

25.Найти и напечатать слово, содержащее наибольшее количество букв, если только буквы расположены в алфавитном порядке. Подсчитать количество симметричных слов, имеющих более двух знаков.

15

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Информатика»

 

 

 

 

 

Лабораторная работа № 8.

ТЕМА: ОБРАБОТКА И МОДИФИКАЦИЯ ДВУМЕРНЫХ МАССИВОВ

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

Массив должен иметь не менее 12 и не более 20 строк и столбцов. Перед обработкой данных необходимо вывести исходный массив на экран. Применение в программе функций с передаваемыми параметрами обязательно!

Вданной работе обрабатываются массивы следующих типов:

числовые, в которых элементами являются целые числа.

символьные, элементами являются символы: английские буквы,

цифры от 0 до 9, знаки: <+> <-> <:> <*> <.> </> <=>.

логические, значение элемента может быть 1 или 0. Контур – сово-

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

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

ВАРИАНТЫ ЗАДАНИЙ.

1.Задан прямоугольный массив целых чисел. Определить, есть ли такой элемент, который входит во все строки массива, но не во все столбцы массива и напечатать его.

2.Символьный квадратный массив заполнен случайным набором символов. Определить количество квадратиков, образованных совокупностью одинаковых символов и их суммарную площадь. Квадратик – это образование из не менее чем 4=2х2 одинаковых рядом стоящих символов. Разные квадратики могут быть заполнены разными символами.

3.Дана последовательность N 20 целых чисел в диапазоне от 0 до 65535. Запишите в логический массив размером Nx16 двоичное представление этих чисел, где 1 соответствует значение true, а 0 – false. Массив вывести на экран, причем если элемент равен true, то вывести звездочку (*), иначе точку (.).

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

16

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Информатика»

 

 

 

 

 

5.Задан квадратный массив целых чисел в диапазоне от -99 до 99. Переместить числа так, чтобы эта операция была эквивалентна повороту массива на 90 градусов по часовой стрелке. Результирующий массив вывести на экран.

6.Символьный квадратный массив заполнен случайным набором символов. Найдите цепочки, расположенные по вертикали и/или горизонтали и состоящие из цифр, преобразуйте в числа и напечатайте на экране эти числа и их сумму.

7.Квадратный массив, элементами которого являются английские буквы или символ пробела, заполнен кроссвордом. Напечатать все слова в кроссворде с чередующимися гласными и согласными буквами и их количество.

8.В квадратный числовой массив записаны целые числа в диапазоне от -99 до

99.Определить, имеются ли такие квадратные подмассивы, сумма элементов которых равна P. Если таковые имеются, то вывести эти подмассивы на экран.

9.Задан прямоугольный массив целых чисел. Определить, все ли строки состоят только из разных чисел и напечатать строки, имеющие в своем составе одинаковые числа.

10.Прямоугольный числовой массив может содержать несколько пар равных чисел. Напечатать их индексы и значения, если они есть, или сообщить, если таких пар нет.

11.Квадратный числовой массив моделирует расположение непересекающихся прямоугольников в квадрате, причем каждый прямоугольник заполнен своим числом, отличным от нуля, а промежутки между ними заполнены нулями. Определить количество прямоугольников в квадрате и их общую площадь.

12.В квадратный числовой массив записаны целые числа в диапазоне от -99 до

99.Отсортировать по убыванию элементы массива по строкам, а затем строки по убыванию первых элементов в строке. Результирующий массив вывести на экран.

13.Квадратный массив, элементами которого являются английские буквы или символ пробела, заполнен кроссвордом. Напечатать общее количество слов в кроссворде и все буквы, которые находятся на пересечении слов кроссворда.

14.Символьный квадратный массив заполнен случайным набором символов. Определить количество цепочек, расположенных по вертикали и/или горизонтали и состоящих только из латинских букв.

15.Символьный квадратный массив заполнен случайным набором из английских букв, знаков и пробелов. Определить количество цепочек, расположенных по диагоналям, в которых гласные английские буквы чередуются с согласными, и напечатать их.

17

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Информатика»

 

 

 

 

 

16.В числовом квадратном массиве постройте “спираль Улама” следующим

образом: начиная с центрального элемента по спирали против часовой стрелки, массив заполняется натуральными числами от 1 до N2. Определить количество простых чисел в массиве, а также вывести массив на экран, причем если элемент есть простое число, то вывести звездочку (*), иначе точку (.).

17.В логическом квадратном массиве (N=8), моделирующем шахматную доску, значениям true соответствуют клетки, на которых расположены фигуры коня, false соответствует пустой клетке. Определить, имеются ли на доске фигуры, угрожающие другим, и напечатать их координаты.

18.В числовом прямоугольном массиве MxN каждый элемент равен числу вида 100*i+j, где 1 i M, 1 j N, или нулю. Это число показывает, на какую следующую клетку (i,j) массива следует перейти с данной клетки. Нуль означает конец пути. Определить, можно ли таким образом посетить все клетки массивы, начав с элемента (1,1). Напечатать координаты начальной и конечной клеток, а также количество посещений.

19.Прямоугольный числовой массив размером 6х7 моделирует месячную страничку табеля-календаря. По заданному номеру месяца и номеру дня недели первого числа этого месяца (пн – 1, вт – 2, и т. д.) построить три таблички табеля-календаря на заданный месяц и два последующих. Напечатать число рабочих и выходных дней за три месяца. Праздничные дни не учитывать.

20.В частично заполненном значением true логическом квадратном массиве имеются свободные участки, моделируемые значением false. Определить, можно ли разместить на них квадрат из значений true размером M. Если возможно, то напечатать массив со вставленным квадратом на экране, причем если элемент равен true, то вывести звездочку (*), иначе точку (.).

21.Прямоугольный символьный массив MxN заполнен по строкам текстом, состоящим из отдельных слов, разделенных пробелами. В начале и в конце строк тоже могут быть пробелы. Сдвинуть все строки влево, исключив начальные пробелы, и напечатать самую короткую и самую длинную строки.

22.В числовом прямоугольном массиве MxN каждый элемент равен числу вида 100*i+j, где 1 i M, 1 j N, или нулю. Это число показывает, на какую следующую клетку (i,j) массива следует перейти. Нуль означает конец маршрута. В массиве может быть несколько цепочек, заканчивающихся нулем. Определить, сколько в массиве таких цепочек и напечатать координаты начала и конца каждой цепочки.

23.Прямоугольный логический массив моделирует биллиардный стол. Шарик из заданной клетки после удара движется по диагоналям массива, отражаясь от стенок. Определить, сколько ударов об стенку должен

18

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Информатика»

 

 

 

 

 

совершить шарик, прежде чем он вернется опять в исходную точку. Показать процесс перемещения шарика, используя процедуру GotoXY(X,Y)

и Delay(T) из модуля Crt.

24.Дан числовой прямоугольный массив MxN. Контур – совокупность клеток массива, находящихся на одинаковом расстоянии от внешней границы. Пусть внешний контур будет нулевым. Определить, в каком контуре сумма элементов наибольшая и напечатать его номер и сумму элементов.

25.В логическом квадратном массиве N=8, моделирующем шахматную доску, значениям true соответствуют клетки, на которых расположены фигуры ферзя, false соответствует пустой клетке. Определить, сколько имеется на доске фигур, угрожающих другим и удалить с доски те из них, которые угрожают двум или более фигурам. Массив вывести на экран, причем если элемент равен true, то вывести звездочку (*), иначе точку (.).

26.В логическом квадратном массиве N=8, моделирующем шахматную доску, значениям true соответствуют клетки, на которых расположены фигуры слона, false соответствует пустой клетке. Определить, сколько имеется на доске фигур, угрожающих другим и удалять их с доски до тех пор, пока слоны не будут угрожать друг другу. Напечатать количество оставшихся фигур. Результирующий массив вывести на экран, причем если элемент равен true, то напечатать звездочку (*), иначе точку (.).

19

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Информатика»

 

 

 

 

 

Лабораторная работа № 9.

Тема: Рекурсия

Общие указания: Для решения задачи написать рекурсивную функцию. Замечание: Хотя в условиях задач суммы/ произведения/ количества/ конъюнкции/ дизъюнкции указаны для элементов массивов с 1 элемента, не забывайте, что индекс первого элемента массива в языке Си – 0.

ВАРИАНТЫ ЗАДАНИЙ.

1.Для заданного одномерного массива A из N элементов проверить, что суще-

ствует, по крайней мере, один элемент Ai, для которого выполняется условие sin Ai > 0. Рекурсивную функцию применять отдельно для каждой из половин массива. Рекурсивные вызовы заканчивать, когда останется только один эле-

мент.

8

4

8

0) , ( – «или»)

Например, для N=8: (sin Ai

0) (sin Ai

0) (sin Ai

i 1

i 1

i 5

 

2.Для заданного одномерного массива X из N элементов проверить, что для всех элементов массива выполняется условие –10< X i3 <20. Рекурсивную функцию применять каждый раз отдельно для каждой из половин массива.

Рекурсивные вызовы заканчивать, когда останется только один элемент.

8

4

8

Например, для N=8: ( 10 X i3

20) ( 10 X i3

20) ( 10 X i3 20) , ( –

i 1

i 1

i 5

 

«и»)

 

3.Для заданного одномерного массива X из N элементов найти количество эле-

ментов массива, для которых выполняется условие sin X2i 0 . Рекурсивную функцию применять каждый раз отдельно для каждой из половин массива. Рекурсивные вызовы заканчивать, когда останется только один элемент.

 

8

X i

 

4

X i

 

8

X i

 

Например, для N=8:

Count (sin

0)

Count (sin

0)

Count (sin

0)

2

2

2

 

i 1

 

i 1

 

i 5

 

4.Для заданного одномерного массива A из N элементов найти значение минимального элемента массива и его номер. Рекурсивную функцию применять каждый раз отдельно для каждой из половин массива. Рекурсивные вызовы

заканчивать, когда останется только один элемент.

 

12

 

6

12

 

 

 

 

Например, для N=12:

Min Ai

min Min Ai

; Min Ai

 

i 1

 

i 1

i 7

 

20

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Информатика»

 

 

 

 

 

5.Для заданного одномерного массива B из N элементов найти сумму выражений, вычисляемых по формуле sin Bi cos Bi . Рекурсивную функцию применять каждый раз отдельно для каждой из половин массива. Рекурсивные вызовы

заканчивать, когда останется только один элемент.

8

4

8

 

Например, для N=8: sin Bi

cos Bi sin Bi

cos Bi sin Bi cos Bi

 

i 1

i 1

i 5

 

6.Для заданного одномерного массива X из N элементов проверить, что для

всех элементов массива выполняется условие cos Xi > 0. Рекурсивную функцию применять каждый раз отдельно для первой трети массива и для остальной части (2/3) массива. Рекурсивные вызовы заканчивать, когда останется

только один или два элемента.

6

2

6

Например, для N=6: (cos X i

0) (cos X i

0) (cos X i 0) , ( – «и»)

i 1

i 1

i 3

7.Для заданного одномерного массива B из N элементов найти количество элементов массива, для которых выполняется условие (cos Bi2 0) (Bi 0) . Рекурсивную функцию применять каждый раз отдельно для первой трети массива и для остальной части (2/3) массива. Рекурсивные вызовы заканчивать, когда

останется только один или два элемента. Например, для N=6:

6

 

2

 

6

 

 

Count ((cos Bi2

0) (Bi

0)) Count ((cos Bi2

0) (Bi

0)) Count ((cos Bi2

0) (Bi

0))

i 1

 

i 1

 

i 3

 

 

8.Для заданного одномерного массива A из N элементов найти значение максимального элемента массива. Рекурсивную функцию применять каждый раз отдельно для первой трети массива и для остальной части (2/3) массива. Рекурсивные вызовы заканчивать, когда останется только один или два элемента.

 

6

 

2

6

 

Например, для N=6:

Max Ai

max Max Ai ; Max Ai

 

i 1

 

i 1

i 3

 

9.Для заданного одномерного массива X из N элементов найти сумму выражений, вычисляемых по формуле X i2 . Рекурсивную функцию применять каждый раз отдельно для первой трети массива и для остальной части (2/3) массива. Рекурсивные вызовы заканчивать, когда останется только один или два элемента.

9

3

9

Например, для N=9: X i2

X i2

X i2

i 1

i 1

i 4

10.Для заданного одномерного массива A из N элементов проверить, что существует по крайней мере один элемент Ai, для которого выполняется условие Ai ≤ i2. Рекурсивную функцию применять каждый раз отдельно для каждой из половин массива. Рекурсивные вызовы заканчивать, когда останется только один элемент.

21

Федеральное агентство по образованию

Форма

 

Ульяновский государственный университет

 

 

 

 

 

 

«Информатика»

 

 

 

 

 

4

2

4

Например, для N=4: ( Ai

i 2 ) ( Ai i 2 ) ( Ai i 2 ) , ( – «или»)

i 1

i 1

i 3

11.Для заданного одномерного массива Y из N элементов проверить, что для

всех элементов массива выполняется условие

Yi < 0. Рекурсивную функцию

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

4

2

4

0) , ( – «и»)

Например, для N=4: (Yi

0) (Yi

0) (Yi

i 1

i 1

i 3

 

12.Для заданного одномерного массива X из N элементов найти произведение

множителей, вычисляемых по формуле X i . Рекурсивную функцию приме-

1 i

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

6

X i

3

X i

6

X i

Например, для N=6:

 

 

 

 

 

i 1

1 i

i 1

1 i

i 4

1 i

 

 

 

13.Для заданного одномерного массива B из N элементов найти значение минимального элемента массива. Рекурсивную функцию применять каждый раз отдельно для каждой из половин массива. Рекурсивные вызовы заканчивать, когда останется только один элемент.

 

4

 

2

4

 

Например, для N=4:

MinAi

min MinAi ; MinAi

 

i 1

 

i 1

i 3

 

14.Для заданного одномерного массива Q из N элементов проверить, что существует по крайней мере один элемент Qi, для которого выполняется условие |Qi| > i. Рекурсивную функцию применять каждый раз отдельно для первого элемента массива и для остальной его части. Рекурсивные вызовы заканчивать, когда останется только один элемент.

5

 

 

 

5

 

i) , ( – «или»)

Например, для N=5: (

Qi

i) (

Q1

1) (

Qi

i 1

 

 

i 2

 

15.Для заданного одномерного массива Y из N элементов проверить, что для всех элементов массива выполняется условие Yi sin Yi > 5. Рекурсивную функцию применять каждый раз отдельно для первого элемента массива и для остальной его части. Рекурсивные вызовы заканчивать, когда останется только один элемент.

5

 

5

5) , ( – «и»)

Например, для N=5: (Yi sin Yi

5) (Yi sin Yi

5) (Yi sin Yi

i 1

 

i 2

 

16.Для заданного одномерного массива X из N элементов найти произведение

X 2

множителей, вычисляемых по формуле X i 1 i i . Рекурсивную функцию применять каждый раз отдельно для первого элемента массива и для остальной

22