- •Алгоритмизация и основы программирования
- •1. Технология подготовки и решения задач на компьютере
- •Понятие об алгоритмических языках
- •2. Этапы решения задач на компьютере
- •Этапы процесса тестирования
- •Характерные ошибки программирования.
- •3. Основы языка программирования Паскаль
- •3.1. Алфавит языка программирования
- •Правила написания идентификаторов:
- •Константы
- •3.2. Выражения, операции
- •3.3. Операторы
- •3.3.1. Оператор присваивания
- •3.3.2. Операторы перехода
- •3.4. Использование комментариев для пояснений
- •3.5. Общая структура программ в Паскале
- •1. Раздел объявлений и соглашений
- •2. Раздел текстов процедур и функций
- •3. Раздел основного блока программы
- •3.6. Основные операторы модуля crt в turbo pascal
- •3.7. Типы данных
- •3.7.1. Целочисленный тип
- •3.7.2. Вещественные типы
- •3.7.3. Символьный тип
- •3.7.4. Логический тип (boolean)
- •Простые логические выражения
- •Составное логическое выражение
- •Перечисляемый тип
- •Интервальный тип
- •3.8. Ввод-вывод данных
- •Вывод данных
- •Способы представления вещественных чисел
- •Ввод данных
- •3.9. Математические функции и процедуры
- •Взаимные преобразования чисел
- •4. Конструкции языка программирования Паскаль
- •4.1. Организация ветвления
- •4.1.1. Условные операторы. Оператор if
- •4.1.2. Конструкция множественного выбора Case … Of
- •4.2. Операторы цикла
- •4.2.1. Оператор цикла For
- •4.2.2. Оператор цикла Repeat..Until
- •4.2.3. Оператор цикла While..Do
- •5. Структурированные типы данных
- •Одномерные массивы
- •Доступ к элементам массива
- •Заполнение массива
- •6. Подпрограммы пользователя. Назначение Преимущества модульности
- •Подпрограмма
- •Список используемой и рекомендуемой литературы
Заполнение массива
Ввод данных в массив можно выполнить 2 способами:
1) вручную с клавиатуры:
For i:=1 to 10 do {Ввод элементов массива А с клавиатуры}
Begin
Write(''Введите_",I,"-й элемент массива А");
Readln(A[I]);
End;
…
2) задать массив А случайными числами.
Пример. Задать массив А случайными числами в диапазоне от –5 до 5
Randomize; {инициализируем генератор случайных чисел}
For i:=1 to 10 do
Begin
A[I]:=-5+Random(11);{задаем значения}
{случайными числами в диапазоне от –5 до 5}
Write(A[I]:8);
End;
Задача. Вычислить сумму элементов массива A[20]. Массив задать случайным образом числами в диапазоне от –5 до 5. Вывести на экран заданный массив и искомую сумму.
const n=10;
type massiv=array[1..n] of integer;
var a:massiv;
i, summa:integer;
begin
Randomize;
For i:=1 to 10 do
begin
A[i]:=-5+Random(10);
Write(A[i]:5);
end;
writeln; {пропустим пустую строчку для разделения исходных данных и результатов}
for i:=1 to n do
summa:=summa+a[i];
writeln('summa=', summa:5:3);
end.
Задача. Поменять указанные элементы местами. Позиции элементов, которые необходимо поменять местами, ввести с клавиатуры, проверив, не выходят ли введенные индексы за границы массива.
const n=10;
type massiv=array[1..10] of integer;
var a:massiv;
i,j,pos1,pos2,tmp:integer;
begin
Randomize;
for i:=1 to 10 do
begin
a[i]:=-5+Random(11);
Write(A[i]:5);
end;
writeln('Введите позиции элементов, которые желаете поменять местами');
readln(pos1,pos2);
if (((pos1>0)AND(pos1<=n))AND((pos2>0)AND(pos2<=n))) then
{это условие проверяет, принадлежат ли введенные с клавиатуры значения диапазону индексов элементов}
Begin
tmp:=a[pos1];
a[pos1]:=a[pos2];
a[pos2]:=tmp;
End
Else Writeln('Введены несуществующие индексы элементов массива, обмен не выполняется');
writeln;
{пропустив пустую строчку, выводим массив, полученный в результате обмена}
for i:=1 to n do
writeln('a[',i,']=',a[i]:3);
readln;
end.
|
Задачи для самостоятельного решения по теме «Одномерные массивы» |
Запомнить в элементах массива сумму всех предыдущих элементов, включая данный (самостоятельно).
Изменить знак у максимального по модулю элемента массива.
Заменить все четные элементы на их квадраты, а нечетные удвоить.
Вычесть из положительных элементов элемент с номером k1, а к отрицательным прибавить элемент с номером к2, нулевые элементы оставить без изменения.
К четным элементам прибавить число А, а из элементов с четными номерами вычесть В.
|
Контрольные вопросы по теме «Одномерные массивы» |
Указать особенности программ, использующих массивы.
Какие операторы языка можно применить для описания массивов?
В чем состоит особенность организации цикла при обработке массивов?
В чем состоит особенность использования приемов программирования при обработке массивов?
Указать особенности ввода-вывода массивов.
6. Подпрограммы пользователя. Назначение Преимущества модульности
Не случайно функции и процедуры похожи на программы в миниатюре. Язык Паскаль спроектирован таким образом, что подпрограммы могут рассматриваться как независимые объекты, работа которых не зависит от основной программы. Как следствие наличие функций и процедур позволяет проектировать и конструировать программы модульным, структурированным способом.
Наиболее важное преимущество модульности, даваемое подпрограммами, — это возможность уменьшить число повторений одной и той же последовательностей операторов. В очень больших или средних по размеру программах существует по крайней мере несколько процессов, выполнение которых повторяется в различных частях программы. Было бы неразумно в программе выполняющей тригонометрические преобразования, вычислять ARCSIN в десятках различных мест. Описание функции — гораздо более простое решение.
Использование подпрограмм делает процесс программирования более систематическим и регулируемым по нарастанию сложности. Благодаря использованию подпрограмм программист может рассматривать программу как набор более мелких компонентов, которые проектируются отдельно.
Учитывая сложность программ, этот эффект является более полезным, чем может показаться на первый взгляд. Начиная с простейшего описания функций программы, можно постепенно разбивать программу на отдельные задачи, которые в свою очередь могут быть реализованы как объединение функций и процедур.
Как видим, использование функций и процедур является естественным дополнением к технике программирования, позволяющим создавать качественные программы. Выделение задач улучшает наглядность программ, а используя продуманные названия для функций и процедур, программист может выработать более наглядный стиль написания программ.