
- •Оператор вывода данных , ввода данных
- •Линейная структура
- •Найти max{min(a, b), min(c, d)}.
- •На оси ох расположены три точки а, b, с. Определить, какая из точек b или с расположена ближе к а.
- •Оператор выбора варианта Case
- •Цикл с параметром for
- •Цикл с предусловием While
- •Подсчитать количество цифр заданного натурального числа n.
- •Найти сумму всех n–значных чисел (1£n£4).
- •Найти количество четных цифр натурального числа.
- •Цикл с постусловием Repeat
- •Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить сколько амеб будет через 3, 6, 9, 12, …, 24 часа.
- •Дано натуральное число n. Переставить местами первую и последнюю цифры этого числа.
- •Массивы
- •Линейные массивы
- •Дан массив из n четырехзначных натуральных чисел. Вывести на экран только те, у которых сумма первых двух цифр равна сумме двух последних.
- •Дан массив действительных чисел, размерность которого n. Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов.
- •Двумерные массивы
- •В двумерном массиве найти сумму всех тех элементов, сумма индексов которых равна n.
- •Определить номер строки и столбца минимального элемента двумерного массива.
- •Упорядочить ту строку двумерного массива по возрастанию, в которой сумма ее элементов минимальна.(практика)
- •Строковый тип данных
- •Дана строка, заканчивающаяся точкой. Подсчитать, сколько в ней слов.
- •Дана строка, содержащая текст. Найти длину самого короткого слова и самого длинного слова.
- •В строке заменить все двоеточия (:) точкой с запятой (;). Подсчитать количество замен.
- •Записи (комбинированный тип)
- •Функции
- •Написать функцию вычисления факториала (факториалом целого числа n называется число, равное произведению целых чисел от 1 до n).
- •Функция вычисления количества запятых в строке.
- •Даны натуральные числа к и n. Составить программу формирования массива а, элементами которого являются числа, сумма цифр которых равна к и которые не больше n.
- •Дано натуральное число n. Составить программу формирования массива, элементами которого являются цифры числа n.
- •Процедуры
- •Написать процедуру, которая выводит строку, состоящую из одинаковых символов. Длина строки и символ являются параметрами процедуры.
- •Используя процедуру обмена, упорядочить по возрастанию значения трех переменных a, b, c.
- •Написать программу вычисления суммы для заданного числа п. Результат представить в виде несократимой дроби (р, q — натуральные).
- •Напишите процедуру, которая удаляет из одномерного вещественного массива наибольшее значение.
- •Даны две целые переменные. Используя процедуру, поменять местами их значения.
- •Динамические указатели
- •Динамические структуры списки
- •Очереди
- •Список использованной литературы
Динамические указатели
Сортировка двух массивов. Оба массива являются динамическими и располагаются с памяти только тогда, когда над ними производят действия (заполнение случайными числами, сортировка и вывод на экран). После того, как массив отсортирован, он удаляется из памяти.
Разработать программу для определения суммы элементов массива большой размерности (n≤10000, m≤10000, n×m≤50000), заполняя его:
Числами Фибоначчи (1, 1, 2, 3, 5, 8, 13, 21, …);
Простыми числами (2, 3, 5, 7, 11, 13, 17, …);
Степенями числа 2 (2, 4, 8, 16, 32, …);
Определяются как
, где n=1, 2, 3, 4, …, 20.
Динамические структуры списки
Приступая к решению задач этого раздела, следует вспомнить, что:
для задания списка нужно определить тип элементов этого списка по следующему правилу:
TYPE ССЫЛКА = ^ЭЛЕМЕНТ
ЭЛЕМЕНТ = RECORD
ДАННЫЕ: ТИП;
АДРЕС: ССЫЛКА;
END;
в зависимости от количества полей в адресной части и порядка связывания элементов различают однонаправленные и двунаправленные списки;
Для размещения первого элемента направленного списка в памяти нужно выполнить следующие действия:
Разместить ссылку на первый элемент списка в памяти;
Присвоить значение полю данных;
Присвоить ссылке на следующий элемент списка значение NIL (пустой ссылки);
Присвоить ссылке на хвост списка ссылку на первый элемент списка. Это нужно, чтобы сохранить начало списка и при необходимости вернуться к нему.
Для добавления нового элемента в конец направленного списка нужно выполнить следующие действия:
Разместить в памяти следующий элемент списка
Ссылке на хвост присвоить ссылку на следующий элемент
Присвоить значение полю данных
Присвоить ссылке на следующий элемент списка значение NIL (для контроля конца списка)
Для добавления нового элемента в произвольное место направленного списка нужно выполнить следующие действия:
Разместить в памяти новый элемент списка;
В поле для данных этого элемента занести нужную информацию;
В поле ссылки на следующий элемент вставляемого элемента занести ссылку, взятую из одноименного поля элемента списка, за которым вставляется новый элемент;
В поле ссылки на следующий элемент списка, за которым вставляется новый элемент занести ссылку на вставляемый элемент.
ЗАДАЧИ
Составить программу, которая удаляет из списка L все отрицательные элементы.
Дан список, содержащий натуральные числа. Удалить те его элементы, которые кратны заданному числу k.
Дан список символов. Подсчитать количество вхождений в этот список букв ‘t’.
Составить программу, которая вставляет в список L новый элемент F за каждым вхождением элемента E.
Составить программу, которая удаляет из списка L все элементы E, если таковые имеются.
Составить программу, которая удаляет из списка L за каждым вхождением элемента E один элемент, если таковой имеется и он отличен от E.
Составить программу, которая проверяет, есть ли в списке L хотя бы два одинаковых элемента.
Составить программу, которая переносит в конец непустого списка L его первый элемент.
Составить программу, которая в списке L из каждой группы подряд идущих одинаковых элементов оставляет только один.
Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2.
Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в один из списков L1 и L2, но в то же время не входят в другой.
Составить программу для упорядочения в порядке возрастания элементов однонаправленного списка.
Составить программу, заполняющую список последовательностью случайных различных целых чисел и суммирующую те его элементы, которые расположены между минимальным и максимальным элементом (если минимальный элемент предшествует максимальному).
Даны упорядоченные списки L1 и L2. Вставить элементы списка L2 список L1, не нарушая его упорядоченности.
Дан список вещественных чисел. Написать следующие функции:
а) проверки наличия в нем двух одинаковых элементов;
б) переноса в начало его последнего элемента;
в) переноса в конец его первого элемента;
г) вставки списка самого в себя вслед за первым вхождением числа x.
Даны два списка L1 и L2 вещественных чисел. Написать подпрограммы, возвращающие новый список L, включающий по одному разу числа, которые:
а) входят одновременно в оба списка;
б) входят хотя бы в один из списков;
в) входят в один из списков L1 и L2, но в то же время не входят в другой из них;
г) входят в список L1 , но не входят в список L2.
Дан список слов, среди которых есть пустые. Написать подпрограмму, выполняющую следующее действие:
а) перестановку первого и последнего непустых слов;
б) печать текста из первых букв непустых слов;
в) удаление из непустых слов первых букв;
г) определение количества слов в непустом списке, отличных от последнего.
КОНТРОЛЬНЫЕ ЗАДАНИЯ
Дан список, содержащий целые числа. Определить количество различных элементов этого списка.
Дан список, содержащий целые числа. Сформировать другой список из элементов данного, абсолютные величины которых являются простыми числами.
Составить программу, которая вставляет в список L новый элемент F перед первым вхождением элемента E, если E входит в L.
Составить программу, которая вставляет в список L за первым вхождением элемента E все элементы списка L, если E входит в L.
Составить программу, которая переворачивает список L, т.е. изменяет ссылки в этом списке так, чтобы его элементы оказались расположенными в обратном порядке.
Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в список L1, но не входят в список L2.
Программа должна находить среднее арифметическое элементов непустого однонаправленного списка вещественных чисел, заменять все вхождения числа x на число y, менять местами первый и последний элементы, проверять, упорядочены ли числа в списке по возрастанию.