
- •Язык Pascal в популярном изложении
- •§ 1 Постоянные и переменные величины
- •§ 2 Арифметические действия. Элементарные функции
- •§ 3 Арифметические выражения. Скобки
- •§ 4 Вычисление значения арифметического выражения. Команда присваивания
- •§ 5 Типы числовых данных
- •§ 6 Описание числовых переменных
- •§ 7 Обобщение по вещественному типу данных
- •§ 8 Обобщение по целому типу данных
- •§ 9 Простая программа. Команда Writeln
- •§ 10 Исполнение программы. И снова о команде Writeln
- •§ 11 Исполнение программы (продолжение). Сообщения об ошибках
- •§ 12 Учимся самостоятельно писать программы и отлаживать их на компьютере
- •§ 13 Строка символов в команде Writeln
- •§ 14 Ввод исходных данных. Команда Readln
- •§ 15 Отношения между величинами
- •§ 16 Разветвляющиеся алгоритмы. Полное ветвление
- •§ 17 Разветвляющиеся алгоритмы. Неполное ветвление
- •§ 18 Давайте попробуем разработать программу - тест
- •§ 19 Команда множественного выбора case
- •§ 20 Графика в паскаЛе
- •§ 21 Цикл пока в языке Паскаль
- •§ 22 Цикл для каждого в языке Паскаль
- •§ 23 Работа цикла для каждого (for)
- •§ 24 Модификация цикла для каждого
- •§ 25 Некоторые специальные процедуры и функции, используемые в языке
- •§ 26 Разработка мультика
- •§ 27 Строковый тип данных
- •§ 28 Строковые процедуры и функции
- •§ 29 Массивы, размерность, длина, описание массивов
- •§ 30 Процедуры в языке Паскаль
- •1) Процедуры без параметров;
- •§ 31 Процедуры без параметров
- •§ 32 Процедура с параметрами-значениями
- •§ 33 Процедуры с параметрами-переменными
- •§ 33 Функции, определенные пользователем
- •§ 34 Несколько рекомендаций по использованию процедур и функций
§ 28 Строковые процедуры и функции
DELETE(St,Poz,N) - процедура удаления N символов строки St,начиная с позиции Poz
INSERT (St1,St2,Poz)- процедура вставки строки St1 в St2, начиная с позиции Poz
STR(M,St) – процедура преобразования числового значения величины M и помещения результата в строку St
VAL(St,M,Code) – процедура преобразования значения строки St в величину целочисленного или вещественного типа и помещения результата в M. Значение St не должно содержать незначащих пробелов в начале и конце. Code – целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно 0, если обнаружено (например, встретился литерный символ) Code будет содержать номер позиции первого ошибочного символа, значение M не определено.
СOPY(St,Poz,N)- функция, которая выделяет из St подстроку длиной N cимволов, начиная с позиции Poz. Если Poz>Length(St), то результатом будет пробел; если Poz>255, возникнет ошибка при выполнении.
Poz, N – целого типа.
Задания к § 27-28
Сколько раз в данном слове встречается заданная буква?
Сколько раз встречается в данном слове часть, равная заданному слову?
Заменить в данном предложении всюду одну букву на другую. Компьютер должен запрашивать обе буквы.
Во введенном предложении убрать все пробелы.
Является ли введенная строка перевертышем?
Составить программу для определения является ли данная буква звонкой согласной.
Определить правильность написания ЖИ-ШИ в предложении и сообщить процент ошибок.
Составьте программу, которая из двух слов получает третье по следующему правилу:
первая буква 1 слова + первая буква 2 слова +вторая буква 1 слова + вторая буква 2 слова + и т.д. Если в словах разное количество букв, то большее усекается.
Можно ли составить кроссворд из двух заданных слов. Если можно, то составить и изобразить на экране.
Один из методов шифровки сообщений состоит в том, что после каждого символа вставляется некоторая буква (каждый раз, вообще говоря, разная). Составьте программу шифровки и дешифровки таким способом произвольного текста, используя для вставок одну и ту же букву.
* Попробуйте решить эту же задачу, но выбирая для каждой вставки букву случайным образом.
§ 29 Массивы, размерность, длина, описание массивов
Переменные типа Х[1], X[2], X[3], X[4].
A[1,1], A[1,2], A[1,3],
A[2,1], A[2,2], A[2,3]
называют индексированными переменными.
Массив - совокупность индексированных переменных (элементов). Каждый элемент массива имеет имя и один или несколько индексов. Массив - область машинной памяти, в которой могут размещаться совокупности значений одного и того же типа.
Размерность массива - число индексов у элемента массива.
Длина массива - число элементов в массиве.
Описание массива:
Var
X: Array [1..4] of INTEGER;<------данные такого
| | типа будут
| | размещаться в памяти
| |
| |-------- для такого числа элементов
| зарезервирована память
|----- такие имена будут иметь элементы массива
Ввод и вывод массива
Ввод одномерного массива осуществляется всегда в цикле.
Например, нужно ввести 10 элементом массива А.
Для этого, во-первых, следует описать массив:
Var A:Array [1..10] of real;
Команды для ввода будут выглядеть так:
For i:=1 to 10 Do begin
Writeln('Введи', i,'элемент='); Readln(a[i]);
end;
А вывод этого же массива будет выглядеть так:
For i:=1 to 10 Do begin
Writeln(i,'элемент=',a[i]);
end;
Задания к § 29
Сосчитать число положительных элементов в одномерном массиве и их сумму.
Из имеющегося списка фамилий составить новый, в котором эти же фамилии помещены в обратном порядке.
Имеются два списка: в одном - названия литературных произведений, а в другом - авторы этих произведений. Написать программу, которая составляла бы новый список, в котором бы после каждого произведения стоял его автор.
Информация о температуре воздуха за неделю задана в виде массива. Определите, сколько раз температура воздуха опускалась ниже 00.
Информация о средней суточной температуре воздуха за месяц задана в виде массива. Определите, температура скольких дней была выше среднемесячной.
Результаты переписи населения хранятся в памяти ЭВМ. Используя массивы фамилий и года рождения, напечатать фамилии и подсчитать общее число жителей, родившихся раньше 1970 года.
Заданные массивы (ai) и (bi) содержат по t элементов каждый. Вычислить и напечатать элементы массивов (ci) и (gi) таких, что
ci = ai2 bi + bi2 ai
gi = ai + (ai bi) + bi
Заданный массив (ai) содержит t элементов. Найти наибольший и наименьший элементы массива, вычислить и напечатать их полу сумму.
Заданные массивы (ai) и (bi) содержат по t элементов каждый. Вычислить и напечатать величины
c = Σ ai2/bi , g = Σ (ai + bi)/aibi
Заданный массив (ci) содержит t элементов. Найти сумму тех элементов массива, которые попадают в сегмент [a,b], т.е. удовлетворяют соотношению: a<= cj <=b
Заданный массив (gi) содержит m элементов. Найти количество элементов массива, которые не попадают в сегмент [x, y], т.е. удовлетворяют соотношению: gi > y или gi < x.
Заданный массив (ci) содержит t элементов. Найти и напечатать количество и сумму положительных элементов массива, количество и сумму его отрицательных элементов.
Заданные массивы (xi) и (yi) содержат m элементов. Требуется поменять местами те элементы xj и yj этих массивов, которые удовлетворяют соотношению:
xj < yj (j = 1, …, m)
Подсчитать, на какую величину уменьшится сумма массива yi. Полученный результат напечатать.
Заданный массив (xi) содержит t элементов. Требуется отрицательные элементы массива заменить нулями. Определить и напечатать количество и сумму квадратов неотрицательных элементов.
Имеется какой - либо раствор, состоящий из заданного числа компонентов (например, французские духи состоят не менее чем из 50 компонентов). Определите процентное содержание каждого из компонентов в растворе, если известна масса каждого из них.
Составьте программу, в которой:
всем элементам массива присваивается заданное целое значение(количество элементов массива не более 50);
всем элементам массива присваивается заданный текст;
каждому элементу массива, стоящему на четном месте, присваивается его номер, а эламенту на нечетном месте - его номер с противоположным знаком;
элементам массива, стоящим, на четных местах, присваивается символ s, а на нечетных местах - "#";
каждому элементу, стоящему на 1, 4, 7-м и т.д., местах, присваивается число 0, остальным - число 3.
Составьте программу ввода в ЭВМ:
списка студентов (до 30 человек) и вывода этого списка в обратном порядке;
последовательности чисел и вывода этих чисел в обратном порядке.
Имеется список служащих и их оклады. Составьте программу, которая обеспечивает ввод ввод этих данных в ЭВМ и выводит список служащих и их оклады, если необходимо:
увеличить всем оклады на N рублей;
добавить к окладу премию, равную M% от оклада.
Имеется список оборудования и его стоимость. Составьте программу которая вводит эти даннные и выводит список оборудования и его стоимость если необходимо:
уменьшить стоимость каждого вида оборудования на N% от его стоимости;
увеличить стоимость каждого вида товара на M р.
Имеется прескурант, содержащий название товара и его стоимость. Составьте программу, которая выводит новый прейскурант, если необходимо:
увеличить стоимость каждого вида товара на N% от его старой стоимости;
уменьшить стоимость каждого вида товара на M р.
Имеется список служащих и их оклады. Составьте программу, которая обеспечивает ввод этих данных в ЭВМ и вывод ведомости к оплате при условии, что премия составляет N% от оклада, "Уральские"- 15%. Ведомость должна иметь следующую структуру:
ФИО |
Оклад |
Премия |
"Уральские" |
Итого |
|
|
|
|
|