- •Как написать простейшую программу
- •1. Описание переменной файлового типа
- •2. Связь переменной файлового типа с конкретным внешним файлом.
- •3. Чтение из файла
- •4. Закрытие файла
- •5. Признак конца файла
- •6. Запись в файл
- •Логическая функция Eoln()
- •Описание данных логического типа
- •Логические операции
- •Стандартные логические функции
- •Решение задач
- •Окно редактора кода
- •Окно вывода
- •Окно ввода
- •Запуск и остановка программы
- •Оператор цикла с предусловием while
- •Оператор цикла с постусловием repeat
- •Решение
- •Параметры процедур и функций
- •Передача параметров
- •Глобальные и локальные переменные
- •Вызов процедуры
- •Вызов функции
- •Операции для данных символьного типа
- •Функции для данных символьного типа
- •Перечисляемый тип
- •Набор операций
- •Стандартные функции
- •Интервальный тип (диапазон)
- •Описание массива
- •Особенность языка Паскаль
- •Заполнение одномерного массива значениями
- •Вывод значений элементов массива на экран
- •Изменение значений некоторых элементов
- •Заполнение массива по заданному правилу
- •Работа с несколькими массивами
- •Вставка одного элемента
- •Вставка нескольких элементов
- •Сортировка массива методом простого выбора
- •Сортировка массива методом простого обмена (методом пузырька)
Заполнение одномерного массива значениями
Заполнение и вывод массива можно осуществить только поэлементно, то есть можно сначала присвоить значение первому элементу, затем второму и так далее, то же самое и с выводом на экран - выводим первый, второй, третий и так до последнего.
Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и значений производится поэлементно. Значения элементу массива можно присвоить с помощью оператора присваивания, или ввести с клавиатуры с помощью операторов Read или Readln. Очень удобно перебирать все элементы массива в цикле типа for.
Способы заполнения одномерных массивов:
Ввод значения с клавиатуры.
Задание значений в операторе присваивания с помощью генератора случайных чисел. Этот способ более удобен, когда много элементов в массиве (ввод их значений с клавиатуры занимает много времени).
Задание значений по формуле.
Ввод элементов массива из файла
1. Ввод значений элементов массива с клавиатуры. В связи с тем, что использовался оператор Readln, каждое значение будет вводиться с новой строки.
Procedure Init1(Var m : myarray); {Процедура заполнения (инициализации) массива с клавиатуры} Var i : Integer; {i - это переменная для работы с элементами массива} Begin Writen ('введите',n,'чисел'); For i:=1 To n Do {ввод массива с клавиатуры} Readln(m[i]); {чтение i-го элемента} End; |
2. Заполнение массива числами, сгенерированными случайным образом из интервала [a; b]. Подключаем датчик случайных чисел - функцию random.
Procedure Init2(a,b:integer; Var m : myarray); { Процедура заполнения массива случайными числами из интервала [a,b] и вывода на экран. a, b: границы интервала; m : массив. } Var i : Integer; Begin Randomize; {Инициализация генератора случайных чисел} For i:=1 To n Do begin m[i]:= a+random(b-a+1); write(m[i],' ') end; writeln; End; |
3. Заполнение массива по формуле. Каждому элементу массива присваивается значение, вычисленное по формуле. Если каждый элемент массива равен утроенному значению его порядкового номера (индекса), то процедура будет иметь вид:
Procedure Init3(Var m : myarray); {Процедура заполнения (инициализации) массива по формуле} Var i : Integer; {i - переменная для работы с элементами массива} Begin For i:=1 To n Do a[i]:= i*3; End; |
4. Чтение чисел из файла. Нужно заранее создать текстовый файл, в который запишите несколько строк, в каждой из которых по 30 чисел.
Procedure Init4(Var m : myarray); {Процедура заполнения (инициализации) массива из файла} Var i : Integer; {i - это переменная для работы с элементами массива} Begin Writen ('введите',n,'чисел'); For i:=1 To n Do {ввод массива из файла} Readln(f, m[i]); {чтение i-го элемента} End; |