Александр Цветков - Язык программирования PASCAL

Тут можно читать онлайн Александр Цветков - Язык программирования PASCAL - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык программирования PASCAL
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.44/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Александр Цветков - Язык программирования PASCAL краткое содержание

Язык программирования PASCAL - описание и краткое содержание, автор Александр Цветков, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Язык программирования PASCAL - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования PASCAL - читать книгу онлайн бесплатно, автор Александр Цветков
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

В качестве базового типа допустим абсолютно любой тип, в том числе и массив, т.е. допустим массив массивов:

ConstM = 5; N = 8;

Var A : array[1..M] of array[1..N] ofinteger;

Подобная ситуация встречается довольно часто, поэтому для нее существует разумное сокращение:

ConstM = 5;

N = 8;

Var A : array[1..M,1..N] ofinteger;

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

Основные приемы работы с массивами

Рассмотрим выполнение элементарных манипуляций с массивами. Самая простая задача – заполнение всех элементов одним и тем же значением:

{Инициализация массива}

fori:=1 toN doA[i]:=0;

Обратите внимание, как осуществляется доступ к элементам массива – после имени массива в квадратных скобках указывается индекс, который может быть произвольным выражением, лишь бы его значение не выходило за указанный при описании диапазон.

Подобная конструкция допустима везде, где допустима простая переменная.

- 34 -

Цикл for– чрезвычайно удобная и полезная вещь при работе с массивами.

Оператор вида fori:=1 toN do– можно «переводить» как «выполнить для всех элементов массива».

Если два массива одного типа, то допустимо присваивание одного массива другому одним оператором:

B:=A;

Следующие два примера показывают, как осуществить ввод-вывод с небольшим сервисом:

{ввод массива}

fori:=1 toN do

begin

write('Ввeдите ',i,'-й элемент: ');

readln(A[i])

end;

Из этого примера видно, что массив вводится поэлементно, и как организовать нехитрый сервис. Вывод производится аналогично:

{вывод массива}

fori:=1 toN do

writeln ('A[ ',i,']=',A[i]);

Теперь рассмотрим самую первую нашу задачу на обработку массива – поиск максимального элемента. Поступим следующим образом: пусть максимальный элемент массива – первый, заведем для него специальную переменную; затем будем просматривать поочередно последующие элементы, и если окажется, что нам встретится элемент больший, чем уже определенное число, то заменим его на этот элемент массива.

Таким образом, когда мы просмотрим весь массив, окажется, что наша переменная содержит искомое значение:

{определение максимального значения}

max:=A[1];

fori:=2 toN do ifA[i]>max thenmax:=A[i]; writeln('Maximum=',max);

Напишем теперь целиком программу, использовав полученные знания:

Program Massiv;

ConstN = 10;

Var A : array[1..N] ofinteger;

i, max : integer;

begin

fori:=1 toN do// Ввод массива

begin

write( 'Ввeдите ',i,'-й элемент: ');

readln(A[i])

end;

max:=A[1]; // Поиск максимального значения

fori:=2 toN do

ifA[i]>max then

max:=A[i];

writeln( 'Maximum=',max);

end.

- 35 -

Задание 12

1. Внимательно прочитать текст. Знать определение массива и способы его описания. (2 балла)

2. Напишите программу, которая вводит с клавиатуры значения массива, состоящего из 10 элементов, а затем выводит его. (2 балла)

3. Модифицируйте предыдущую программу, так чтобы она выводила элементы массива в обратном порядке (используйте цикл fori:=N downto1 do). (1 балл)

4. По аналогии с примером на стр. 35 напишите программу, находящую минимальный элемент массива и выводящую его значение. (2 балла)

5. Модифицируйте предыдущий пример, так чтобы программа определяла максимальный и минимальный элемент массива. (1 балл)

6. * Напишите программу, которая бы определяла среднее арифметическое значение элементов массива (конечно, это будет вещественная величина типа real) (* 3 балла)

7. * Напишите программу, которая бы вводила значения элементов целочисленного массива, а затем рисовала бы N окружностей, радиусы которых бы равнялись введенным значениям.

(* 3 балла)

Задачи, отмеченные *, являются необязательными и их баллы – дополнительными.

- 36 -

Тема №13. Сортировка массивов

Тема имеет исключительно важное значение

Первой серьезной задачей программирования, с которой сталкивается начинающий программист – это задача сортировки массива. Под сортировкой понимается упорядочивание элементов массива по возрастанию (или по убыванию) без создания копии массива (т.е. «на месте»).

Самый простой алгоритм – это линейная сортировка. Рассмотрим рис. 13.1.

Проведем последовательно сравнение первого элемента со всеми последующими, при если при очередном сравнении (например сразу 4 и 2) выяснится, что элементы стоят в «неправильном» порядке – переставим их местами, затем продолжим сравнение

(рис. 13.2). По окончании одного прохода, можно сказать, что в первом элементе массива находится минимальный элемент (Рис. 13.4).

Язык программирования PASCAL - изображение 22 Язык программирования PASCAL - изображение 23

Рис 13.1

Рис 13.2

Язык программирования PASCAL - изображение 24 Язык программирования PASCAL - изображение 25

Рис 13.3

Рис 13.4

Далее применим указанную процедуру к неотсортированному «остатку» массива (рис. 13.5) до тех пор, пока не переставим два последних элемента (рис. 13.6-13.7).

Язык программирования PASCAL - изображение 26 Язык программирования PASCAL - изображение 27

Рис 13.5

Рис 13.6

Язык программирования PASCAL - изображение 28 Язык программирования PASCAL - изображение 29

Рис 13.7

Рис 13.8

Алгоритм линейной сортировки очень прост, но не экономичен, среднее число просмотров и перестановок пропорционально квадрату числа элементов (точнее -N 2/2 ).

- 37 -

Приведем программу сортировки. Обратите внимание, что мы использовали массив в качестве параметра процедуры. Для этого необходимо создать тип Massiv (стр. 34). Часто для экономии памяти массив передают через var-параметр (стр. 32), даже если не предполагается его модифицировать в подпрограмме. Т.е. заголовок процедуры print мог бы выглядеть следующим образом:

procedureprint (var m : Massiv); .

ProgramLinerSort;

ConstN = 10; // Число элементов массива

Type Massiv = array[1..N] ofinteger; // Определение типа Massiv

procedureswap(var x,y: integer); // Перестановка элементов местами

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Александр Цветков читать все книги автора по порядку

Александр Цветков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык программирования PASCAL отзывы


Отзывы читателей о книге Язык программирования PASCAL, автор: Александр Цветков. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x