- •Оператор вывода данных , ввода данных
- •Линейная структура
- •Оператор выбора варианта Case
- •Цикл с параметром for
- •1. Написать программу, которая 10 раз выводит на экран имя и фамилию пользователя.
- •Написать программу, возведения числа a в степень n.
- •1 3 4 2 7 4 9 6 2 1 Ср.Арифм. 3.9
- •Цикл с предусловием While
- •Найти произведение чисел 1*2*3*…*n. Вычисление факториала числа n.
- •Цикл с постусловием Repeat
- •3. Написать программу, которая преобразует введенное пользователем десятичное число в двоичное. Рекомендуемый вид экрана во время работы программы приведен ниже.
- •Дано натуральное число n. Вычислить: .
- •Найти наибольший общий делитель чисел m и n.
- •Дано натуральное число n. Найти сумму первой и последней цифры этого числа.
- •Даны два натуральных числа n и m (m£9999, n£9999). Проверить, есть ли в записи числа m цифры, одинаковые с цифрами в записи числа n.
- •Массивы
- •Линейные массивы
- •В одномерном массиве поменять местами минимальный и максимальный элементы.
- •Переписать одномерный массив в обратном порядке.
- •Дана последовательность натуральных чисел al, a2, ..., ап. Создать массив из четных чисел этой последовательности. Если таких чисел нет, то вывести сообщение об этом факте.
- •Двумерные массивы
- •В двумерном массиве найти сумму всех тех элементов, сумма индексов которых равна n.
- •Определить номер строки и столбца минимального элемента двумерного массива.
- •Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по строкам.
- •Дана квадратная матрица a[n, n]. Записать на место отрицательных элементов матрицы нули, а на место положительных — единицы.
- •Переписать столбцы двумерного массива в обратном порядке. Строковый тип данных
- •Написать программу, которая проверяет, является ли введенная с клавиатуры строка двоичным числом.
- •В строке заменить все двоеточия (:) точкой с запятой (;). Подсчитать количество замен.
- •Проверить, одинаковое ли число открывающихся и закрывающихся скобок в данной строке.
- •Записи (комбинированный тип)
- •Функции
- •Написать программу нахождения суммы большего и меньшего из 3 чисел.
- •Составить программу, определяющую, в каком из данных двух чисел больше цифр.
- •Процедуры
- •Напишите процедуру, которая удаляет из одномерного вещественного массива наибольшее значение.А-07-2
- •Процедура замены запятых на точки с запятой в строке.А-07-2
- •Написать процедуру, которая вычисляет объем и площадь поверхности параллелепипеда. А-07-2
- •Динамические указатели
- •Динамические структуры списки
- •Очереди
- •Список использованной литературы
Динамические указатели
Сортировка двух массивов. Оба массива являются динамическими и располагаются с памяти только тогда, когда над ними производят действия (заполнение случайными числами, сортировка и вывод на экран). После того, как массив отсортирован, он удаляется из памяти.
Разработать программу для определения суммы элементов массива большой размерности (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, менять местами первый и последний элементы, проверять, упорядочены ли числа в списке по возрастанию.