Файл: Основы программирования на языке Pascal (Первая программа на Паскале).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 31.03.2023

Просмотров: 402

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Элементы, которые находятся в группе, имеют свой номер. В различных языках программирования счет начинается с определенной цифры, не обязательно с 1. А вот пример программ на Паскале говорит о том, что в нем нумерация начинается с нее. Данный порядковый номер назван индексом каждого элемента. Как правило, он является целым числом, реже символом. В принципе, для ячейки данных все равно, какая индексация будет задана: числовая или буквенная.

Массив в Паскале (примеры ниже) может иметь только один тип, к которому будут принадлежать и все его элементы. Не бывает такого, что одна ячейка типа real, а другая integer.

В среде программирования данные одномерного (т.е. простого) массива вводятся линейно:

Var a: array [5..40] of char;

b: real;

i: integer;

BEGIN

For i:=5 to 40 read (ch[i]);

For i:=5 to 40 write (ch[i]:3);

Readln;

END.

Разбирая пример программ на Паскале, можно увидеть, что выделяется память под простейший массив, состоящий из 35 знаков. Индексация ([5..40]) – от 5 до 40. В первой строке после команды BEGIN пользователь должен ввести 35 абсолютно любых символов (цифры, буквы), которые программой записываются в ячейки. Вторая строчка отвечает за вывод их на экран.

2.4 Двумерные массивы

Если одномерный массив – это тот, в котором все операции выстроены «в линию», т. е. все элементы и действия производятся друг за другом, то двумерный позволяет реализовать более сложные структуры с ветвлением.

Такие данные на языке Паскаль (примеры можно увидеть чуть ниже) описываются двумя способами: «array [10..b, 10..f] of тип» или же «array [10..b] of array [10..f] of тип».

Переменные b и f – константы. Вместо них можно вставлять и цифры (как в одномерных массивах), но в подобных задачах лучше такое не практиковать. Это объясняется тем, что язык программирования определяет первую константу в качестве количества строк, а вторую – столбцов данного массива[6].

Пример задачи через специальный раздел type:

Const b=24; f=13;

Type cherry=array [10..b, 10..f] of real;

Var n: cherry;

Через раздел переменных описать массив несколько легче (для новичков):

Const b=24; f=13;

Var n: array [10..b, 10..f] of real;

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

Открытый массив – тот, у которого нет границ. Он имеет лишь тип (real, integer и др.). Иными словами, созданный массив – безразмерный. Его «тягучесть» определяется самой программой при выполнении. Записывается он таким образом:


Seulgi1: array of char;

Yeri: array of real;

Отличительной особенностью этих массивов является то, что индексация начинается с нуля, а не единицы.

2.5 Графика в Паскале

Те, кто имеет хотя бы малейшее представление о «внутренностях» операционной системы, знает, что все изображения строятся благодаря прямоугольным растрам. Растровые картинки состоят из пикселей, которые настолько маленькие, что глаз человека воспринимает нарисованное или сфотографированное за единое целое. При этом чем больше разрешение фотографии, тем меньше пиксели будут.

Второй способ представления графики – векторный. Как правило, это отрезки, круги, эллипсы и другие геометрические фигуры, которые и составляют весь рисунок.

В среде программирования на любом языке возможно и появления такого вида задач, как графические, результатом которых будет являться графика. Паскаль, примеры таких программ показывают в некоторой степени тяжесть их разработки, позволяет создавать картинки и рисунки. Для того чтобы «активировать» нужную библиотеку, нужно вставить строку «uses graph;».

Как правило, при описании графических данных, используется данная процедура:

InitGraph (var driver, choke: real; Path: string);

Здесь driver является переменной, тип которой integer; choke – переменная, действительного типа; а path позволяет активировать драйверы.

Глава 3. Возведение в степень в языке программирования Паскаль: советы и рекомендации

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

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


Пусть нам дана самая простая задача, где некое число необходимо возвести в целую положительную степень. Допустим, число a возводим в 4 степень. Здесь выполняется простая математическая операция: b:=a*a*a*a.

В следующем шаге мы усложним задачу и составим универсальную программу, которая будет возводить любое число в любую целую положительную степень. Здесь есть возможность воспользоваться любым циклом, но мы рассмотрим более простой метод с использованием цикла со счетчиком. На изображении слева вы можете ознакомиться с полным текстом нашей программы, там же есть и пояснения выполняемых операций. Кстати, следует отметить, что возводимое число a необязательно задавать Integer, а можно, допустим, Real, что позволит возвести в степень дробное число[7].

Предыдущие примеры позволяют нам возводить числа только в целые положительные степени. Но встречаются задачи, где необходимо возвести число в дробную степень. При написании такой программы нам необходимо знание свойств логарифмов. В частности: ab=eb ln a. Исходя из этого, нужный фрагмент нашей программы будет иметь вид: r:=exp(b*ln(a)). Но здесь мы сталкиваемся с тем, что этот оператор не работает с нулем и отрицательными числами. Для того, чтобы наша программа выполняла возведение в степень 0, нужно задать условие: If b=0 Then r:=1 Else r:=exp(b*ln(a)). Но как же для отрицательного числа выглядит возведение в степень?

Паскаль снова заставляет нас задуматься. Здесь приходится производить данную операцию с модулем нашего числа и брать данные с отрицательным результатом. Затем проверить четность степени: если наша степень была четной, тогда мы берем от результата модуль. В таком случае наша программа будет иметь вид: r:=(-1)*exp(b*ln(abs(a))); If Round(b/2)=b/2 Then r:=abs(r). Условие здесь проверяет, четная или нет степень.

В итоге мы подходим к более универсальной модели нашей программы, которая будет работать с любыми числами. То есть теперь мы должны объеденить в единое целое все вышеизложенное. В изображении справа вы можете ознакомиться с полным текстом нашей готовой программы. Обратите внимание на заданный тип данных. В отличие от первой программы, здесь используется Real, т.к. здесь мы уже работаем с любыми числами, а не только с целыми. Итак, возведение в степень действительных чисел нами полностью рассмотрено. Осталось рассмотреть лишь один вопрос.

Переходя к нему, следует отметить, что при решении данной задачи необходимы достаточно глубокие знания в программировании. Это возведение в степень комплексного числа. Здесь можно пробовать использовать различные варианты решения, допустим, формулу Муавра, но там есть трудности с переводом комплексного числа в тригонометрическую форму. Есть решение данной задачи в задании процедуры перемножения двух комплексных чисел и простого цикла со счетчиком, т.е. повторение этой процедуры равное степени число раз. На предоставленном примере вы можете более детально разобраться с текстом этой программы.


При программировании на языке Паскаль (Pascal) необходимо выбирать типы данных Паскаль-программы. Программисту важно понимать, что для запуска его программы в оперативной памяти выделяется место для хранения не только команд, но и данных, с которыми эти команды работают.

Все типы данных в Pascal делятся на две группы: простые и структурированные. Для каждого типа данных отводится некоторое количество байт. К простым типам относятся: целые типы (byte, integer и др.), вещественные типы (real, single и др.), логический тип (boolean), символьный тип (char), перечисляемый и интервальный тип. Все они, за исключением вещественных типов, являются порядковыми типами и характеризуются тем, что имеют ограниченный упорядоченный набор значений. Например, переменная, имеющая тип byte, может принимать значения в интервале от 0 до 255 включительно. Такие типы данных в Паскале позволяют применять функции Pred (вычисляет предыдущее значение) и Succ (вычисляет последующее значение), Low (вычисляетет наименьшее значение типа) и High (вычисляет наибольшее значение типа), Ord (вычисляет порядковый номер текущего значение переменной)[8].

Переменная простого типа в качестве значения имеет только одно данное, т.е. одно целое число, дробное число или один символ. Переменные, имеющие простые типы данных, в Паскале должны быть описаны в разделе Var (сокр. от Variables – переменные).

Переменная в программе на языке Паскаль считается полностью заданной, если она имеет название (идентификатор), тип и начальное значение. Название переменной используется при обращении к ней посредством какого-либо оператора. Тип данных определяет диапазон представления (какие значения может принимать переменная), операции, в которых она может участвовать, объем памяти, который требуется для хранения переменной в оперативной памяти. Поэтому при решении задачи следует склоняться к уменьшению количества переменных и рациональному подбору их типов.

Структурированные типы представляют собой упорядоченный набор переменных простых типов. К ним относятся: массивы (array), множества (set of), строки (string), файлы (file), записи (record). Структурированные типы данных в Паскале описываются в разделе type (раздел описания типов).

Массив - самый распространенный из структурированных типов, используется тогда, когда требуется хранить и обрабатывать упорядоченный набор переменных одного типа (любого простого типа). Массивы бывают одномерные, двумерные, многомерные. Примером одномерного массива может служить список учеников в классном журнале, отсортированный по алфавиту, где у каждого ученика есть уникальный порядковый номер. Примером двумерного массива – расположение мест в зрительном зале кинотеатра (каждое место определяется двумя измерениями – номером ряда и номером места).


Элементы множества в отличие от массива неупорядочены, а количество элементов ограничено числом 255. Строка представляет собой упорядоченный набор символов и этим очень похожа на массив, однако элементами строки могут быть только символы .

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

Начнём, пожалуй, с возведения в квадрат. Возведение в квадрат является частным случаем возведения в степень. Для этого в паскале предусмотрена стандартная процедура sqr(x). Она возведёт наше число x в квадрат, эта запись равна записи x*x.

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

В паскале существует два метода для возведения числа в степень: exp(ln(x)*y) и метод power(x, y). Процедура exp() имеет ограничение: x должно быть больше 0, т.к. нельзя извлечь натуральный логарифм из неположительного числа, но эта функция считается устаревшей и неудобной для использования, поэтому дальше мы о ней говорить не будем. Функция power() принимает два значения, первое число (x) - которое нужно возвести в степень, второе число (y) - степень, в которую нужно возвести и возвращает x в степени y. Следует помнить, что числа х и у - вещественные, то есть типа real.

Но тут есть один недостаток, эта функция есть не во всех версиях паскаля. Да и вообще, иногда возведение в степень должно производиться без использования операторов. Идём дальше и разбираем следующий способ.

Как мы уже поняли, возведение числа в степень - это последовательное умножение числа на само себя несколько раз. Повторить какое-то действие несколько раз в программировании гораздо легче, чем в жизни.

Разберемся, что и как тут работает. Для начала мы вводим два числа: x и y. Затем берём за результат единицу, для чего это - ниже. Выполняем цикл до модуля нашей степени, т.к. если степень будет отрицательной, то цикл не пойдёт. В цикле мы умножаем наш результат на само число x. Так зачем мы присваивали результату 1? Во-первых, если бы мы умножали на 0, то программа всегда выдавала бы 0. Во-вторых, наша степень может быть равна 0, тогда программа должна вернуть нам 1, т.к. любое число в 0 степени это 1. Затем мы проверяем, является степень отрицательным числом или положительным: если она отрицательна, то делим единицу на наш результат. Выполнение этой задачи при помощи цикла while делается почти так же.