Практикум по задачам на Pascal

1. Составить блок-схему и программу решения задачи: Заданы стороны треугольника. Определить, является ли он прямоугольным.

2. Составить блок-схему и программу решения следующей задачи: Даны три числа. Определить, могут ли они являться сторонами треугольника.

3. Составить блок-схему и программу решения следующей задачи: Заданы три различных числа. Напечатать их в порядке возрастания.

Циклы

1. Составить блок-схему алгоритма и программу решения следующей задачи: Найти сумму 1/2 + 1/3 + 1/4 + ... + 1/N , где N- заданное натуральное число.

2. Составить блок-схему алгоритма и программу решения следующей задачи: Протабулировать функцию y=(Sin x) / x для х = 1; 1/2; . .. 1/п. Натуральное число п должно вводится пользователем.

3. Составить блок-схему алгоритма и программу решения следующей задачи: Найти произведение (1/2 +Sin1)( 1/3 + Sin2) . . . (l/N+Sin(N-l)) , где N- заданное натуральное число.

4. Составить блок-схему алгоритма и программу решения следующей задачи: Для задаваемого значения а найти наименьшее натуральное число п, удовлетворяющее условию 1 + 1/2+ . . . +1/п > а.

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

6. Составить блок-схему и программу решения следующей задачи: С клавиатуры вводится 35 вещественных чисел. Найти среднее арифметическое отрицательных чисел.

7. Составить блок-схему и программу решения задачи: В последовательности Sin 1, Sin 2,. . . .. ., Sin 50 найти количество положительных элементов.

8. Составить блок-схему и программу решения следующей задачи: Для заданного значения х определить, принадлежит ли оно области определения функции y = sqrt(4-x*x) / (2x+3)

Записи

1. Разработайте программу, которая, используя тип запись, формирует массив данных о студентах некоторой группы, содержащей следующую информацию: ФИО, год поступления на учебу, оценки за последнюю сессию по всем предметам и размер стипендии. ФИО и отметки программа должна вводить с клавиатуры, а размер стипендии считать исходя из оценок: все «5» - повышенная (+25%), есть одна «4» - повышенная (+10%), нет троек – обычная стипендия, есть одна «3» - стипендия 0. После чего программа должна сортировать массив по размеру стипендии и выводить на экран. Предусмотреть ввод размера обычной стипендии с клавиатуры.

2. Описать структуру «Магазин». Магазин имеет название, директора, тип товаров, часы работы, выходные дни.

3. Описать структуру «Баржа». Баржа имеет количество людей в команде, грузоподъемность, цвет, капитана.

4. Описать структуру «Студент». Студент имеет фамилию, имя, отчество, дату рождения, дату поступления, дату окончания (вычисляется автоматически при добавлении элемента) и номер группы.

5. Описать структуру «Страна»-. Страна имеет столицу, крупнейшие города, страны-партнеры, президента.

6. Описать структуру «Четырехугольник». Четырехугольник задается координатами своих углов. Так же есть поля цвет, площадь (вычисляется автоматически при добавлении элемента) и фамилия добавившего запись.

7. Описать структуру «Комната». Комната iimcci- площадь, количество окоп, цвет обоев и статус жилая/нежилая.

8. Описать структуру «Планета». Планета имеет название, массу, диаметр, расстояние от Земли, тип, спутники.

9. Описать структуру «Журнал». Журнал имеет название, издательство, дату выхода в продажу.

10. Описать структуру «Аквариум». Аквариум имеет объем в литрах, количество рыб, флаги трава, фильтр, кормушка, а так же рыб.

11. Описать структуру «Класс». Класс имеет помер, количество учеников, номер школы, старосту.

12. Описать структуру «Горнолыжный курорт». Горнолыжный курорт имеет название, страну, в которой находится, количество гостиниц, горнолыжные трассы.

Матрицы

1. Найти сумму 2-ух матриц А(4,5) и В(4,5).

2. Найти сумму положительных элементов матрицы А(m,n).

3. Найти произведение элементов главной диагонали матрицы В(n,n).

4. Найти максимальный среди элементов матрицы, лежащих ниже главной диагонали.

5. Найти среднее арифметическое элементов матрицы А(m,n).

6. Найти среднее арифметическое отрицательных элементов матрицы.

7. Найти индексы минимального элемента матрицы.

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

9. Разработать программу, удаляющую из матрицы А(m,n), где n<=10, m <=10, строки, максимальный элемент которых равен В.

10. Дана вещественная матрица А(m,n), где n, m<=15. Разработайте программу, формирующую массив В(m), элементами которого должно являться кол-во элементов каждой строки, превышающей среднее арифметическое значении матрицы в целом. Если в строке таких элементов нет, в соответствующий элемент одномерного массива заносится 0. Вывести исходную матрицу, значение среднего арифметического элементов матрицы и сформированный массив В.

11. Дана вещественная матрица D(m,n), n, m <=20.Разработайте программу, которая в заданной матрице вычеркивает строки, содержащие более 3ех отрицательных элементов. Вывести исходную матрицу и матрицу-результат или соответствующее сообщение, если таких строк не окажется или все строки будут удовлетворять условию.

Множества

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

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

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

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

5. Дана строка, состоящая из последовательности целых чисел в символьном изображении. Числа разделены пробелами (например, «345 6785 1235 54 675»). Разработайте программу, которая формирует множество цифр, присутствующих в записи всех чисел последовательности. Вывести исходную последовательность и сформированное множество. (Для приведенной последовательности множество состоит из одного элемента 5.)

6. Дана строка, содержащая последовательность слов, разделенных пробелами. В словах содержатся буквы латинского и русского алфавита. Разработайте программу, которая формирует и выводит в алфавитном порядке 2 множества: множество латинских и множество русских строчных букв (кроме ё), встретившихся в исходной строке.

7. Дана строка, содержащая последовательность слов из латинских строчных букв, разделенных пробелами. Разработайте программу, которая, используя множество, вычеркивает из каждого слова строки буквы i, j, k, l, m, n. Вывести исходную и преобразованную строки.

Одномерные массивы

1. Дан массив А(20), поменять местами k-ый и l-ый элементы массива.

2. Даны 2 десятимерных вектора X(10) и Y(10), найти их скалярное произведение.

3. Дан массив R(n). Каких элементов в нем больше – положительных или отрицательных?

4. Переписать отрицательные элементы массива X(n) подряд в массив Y. Если такие элементы в массиве Х отсутствуют, выдать соответствующее сообщение.

5. Найти среднее арифметическое значений элементов массива В(n), преобразовать исходный массив, вычитая из каждого элемента среднее арифметическое.

6. Дан массив Q(n) действительных чисел, найти среднее арифметическое тех элементов массива, которые удовлетворяют условию 1<=q [i]<=n.

7. Дан массив В(n) действительных чисел, найти произведение элементов массива, значение которых по модулю меньше 2.

8. Найти максимальный элемент массива X(n) и его индекс.

9. Дан массив F(16) чисел, найти сумму минимального и максимального элементов массива.

10. Найти индекс минимального элемента массива X(n).

11. Найти среднее арифметическое элеметов массива, значение которых больше 8.

12. Заменить отрицательные элементы массива нулями.

13. Найти k*sin(m), где k-номер максимального элемента массива, а m-значение минимального.

14. Поменять местами максимальный и минимальный элемент массива.

15. Найти: 1) Сумму элементов массива А(20) с четными номерами; 2) Сумму элементов массива А(n) с четными номерами.

16. Составить блок-схему алгоритма и программу решения следующей задачи: В данном массиве В(45) найти наибольший элемент среди всех элементов с четными индексами и его индекс.

17. Составить блок-схему алгоритма и программу решения следующей задачи: В данном массиве А(35) подсчитать количество отрицательных и положительных элементов и выдать сообщение: каких из элементов больше.

18. Составить блок-схему алгоритма и программу решения следующей задачи: В данном массиве К(60) найти наибольший по абсолютной величине элемент и его индекс.

19. Составить блок-схемы алгоритмов и программы решения следующей задачи: В данном массиве В(4x5) найти наибольший элемент среди всех элементов с четной суммой индексов. При решении использовать процедуру ввода элементов массива.

20. Составить блок-схему алгоритма решения задачи: Дан массив целых чисел В(40). Преобразовать массив по следующему правилу: значение каждого элемента уменьшить на величину наименьшего в данном массиве.

21. Составить блок-схему алгоритма решения задачи: Дан массив целых чисел А(30). Вычислить среднее арифметическое значение тех его элементов, величина которых больше третьего элемента массива.

Строки

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

2. Задана строка символов. Используя функцию, подсчитывающую количество вхождений некоторого символа в строку, определить, содержит ли строка +, -, *.

3. Дана строка не более 40 символов, состоящая из слов, разделенных пробелами. Разработать программу удаления «лишних» пробелов. Лишними считаются пробелы в начале строки до первого символа, второй и более пробелы между словами и пробелы в конце строки.

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

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

6. Разработать программу, меняющую в строке одно сочетание букв на другое.

7. Разработать программу, меняющую в строке местами слова с указанными номерами. Запретить ввод номеров, которые превышают количество слов строке или равны между собой.

8. Разработать программу, которая осуществляет поиск заданной строки в отсортированном в соответствии с латинским алфавитом массиве строк MasStr[n], n<100.Конкретное количество строк массива определяется в процессе ввода.

9. Дана строка текста длиной не более 80 символов, состоящая из слов, разделенных пробелом, в конце точка. Разработайте программу, которая определяет номера слов, в которых содержится более 3ех символов «А». Вывести исходную строку и номера слов. Если слов с таким числом букв не окажется, вывести соответствующее сообщение.

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

11.Задана строка символов. Используя функцию, подсчитывающую количество вхождений некоторого символа в строку, определить: сколько # , &, ^ содержит данная строка.

Файлы

1. Создать запись (структура записи описана в задании). Создать файл записей. Организовать хранение записей в файле и работу с файлом и записями. Создать меню со следующими пунктами:

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

2. удалить элемент по порядковому номеру

3. вывести элементы на экран (вывести виде таблицы, каждый элемент - отдельная, строка, обязательно использовать разделительные элементы: | , р, Ц (-, -р \ и т.д.)

4. найти элемент или группу элементов по двум полям на выбор

5. редактировать элемент по порядковому номеру

6. выход Выбор пунктов меню осуществляется вводом номера пункта. Организовать проверку заполнения всех (если необходимо) полей при добавлении элемента. Интересные решения приветствуются.