Пусть требуется ввести и обработать последовательность чисел. Если чисел всего пять, можно составить линейный алгоритм. Если их тысяча, записать линейный алгоритм можно, но очень утомительно и нерационально. Если количество чисел к моменту разработки алгоритма неизвестно, то линейный алгоритм принципиально невозможен.
Другой пример. Чтобы найти фамилию человека в списке, надо проверить первую фамилию списка, затем вторую, третью и т.д. до тех пор, пока не будет найдена нужная или не будет достигнут конец списка. Преодолеть подобные трудности можно с помощью циклов.
Циклом называется многократно исполняемый участок алгоритма (программы). Соответственно циклический алгоритм — это алгоритм, содержащий циклы.
Различают два типа циклов: с известным числом повторений и с неизвестным числом повторений. При этом в обоих случаях имеется в виду число повторений на стадии разработки алгоритма.
Существует 3 типа циклических структур:
- Цикл с предусловием;
- Цикл с послеусловием;
- Цикл с параметром;
Иначе данные структуры называют циклами типа «Пока», «До», «Для».
Паскаль с нуля [ч2]. Переменные и типы данных
Графическая форма записи данных алгоритмических структур:
Цикл с предусловием (иначе цикл пока ) имеет вид:
Форматы записи операторов алгоритма | Блок-схема | Форматы записи операторов на Паскале |
Пока (условие) нц серия команд кц | while условие do begin серия команд; end; |
условие – выражение логического типа.
Цикл может не выполняться ни разу, если значение логического выражения сразу же оказывается ложь.
Серия команд, находящихся между begin и end, выполняются до тех пор, пока условие истинно.
Для того чтобы цикл завершился, необходимо, чтобы последовательность инструкций между BEGIN и END изменяла значение переменных, входящих в условие.
Цикл с постусловием (иначе цикл до ) имеет вид:
Форматы записи операторов алгоритма | Блок-схема | Форматы записи операторов на Паскале |
В алгоритмическом языке нет команды которая могла бы описать данную структуру, но ее можно выразить с помощью других команд (Например, ветвления). | repeat серия команд until условие |
условие – выражение логического типа.
Последовательность инструкций между repeat и until всегда будет выполнено хотя бы один раз;
Для того чтобы цикл завершился, необходимо, чтобы последовательность операторов между repeat и until изменяла значения переменных, входящих в выражение условие.
Инструкция repeat, как и инструкция while, используется в программе, если надо провести некоторые повторяющиеся вычисления (цикл), однако число повторов заранее не известно и определяется самим ходом вычисления.
Цикл с параметром (иначе цикл для) имеет вид:
Форматы записи операторов алгоритма | Блок-схема | Форматы записи операторов на Паскале |
Для i от а до b шаг h делай Нц Серия команд кц | h = +1 for i:= a to b do begin серия команд end; h = -1 for i:= b downtoa do begin Cерия команд; end; |
i – параметр цикла;
Информатика 8 класс: Типы переменных в языке Паскаль
a – начальное значение цикла;
b – конечное значение цикла;
h – шаг изменения параметра.
Структура данного цикла иначе называют циклом i раз.
Эта команда выполняется таким образом: параметру i присваивается начальное значение а, сравнивается с конечным значением b и, если оно меньше или равно конечному значению b, выполняется серия команд. Параметру присваивается значение предыдущего, увеличенного на величину h – шага изменения параметра и вновь сравнивается с конечным значением b.
На языке программирования Паскаль шаг изменения параметра может быть равным одному или минус одному.
Если между begin и end находится только один оператор, то операторные скобки можно не писать. Это правило работает для цикла типа «Пока» и «Для».
Переменной называют элемент программы, который предназначен для хранения, коррекции и передачи данных внутри программы. Все переменные программы в Турбо Паскаль должны быть объявлены в разделе описания переменных (см. далее).
Наряду с переменными в пограммах используются и константы. Константа — это идентификатор, обозначающий некоторую неизменную величину определенного типа. Константы, как и переменные, должны объявляться в соответствующем разделе программы.
В Турбо Паскаль применяется несколько стандартных видов констант:
- Целочисленные константы. Могут быть определены посредством чисел, записанных в десятичном или шестнадцатиричном формате данных. Это число не должно содержать десятичной точки.
- Вещественные константы. Могут быть определены числами, записанными в десятичном формате данных с использованием десятичной точки.
- Символьные константы. Могут быть определены посредством некоторого символа (заключенного в апострофы).
- Строковые константы. Могут быть определены последовательностью произвольных символов (заключенных в апострофы).
- Типизированные константы. Представляют собой инициализиованные переменные, которые могут использоваться в программах наравне с обычными переменными. Каждой типизированной константе ставится в соответствие имя, тип и начальное значение. Например:
Источник: studopedia.su
Переменные в Паскаль
Одно из из самых основных понятий в паскале это понятие переменной . В данном уроке
мы разберем что такое переменная , для чего она нужна и что с ней можно делать.
Для простоты понятия переменной , мы будем представлять её в качестве некой коробки , которая в свою очередь имеет свое имя ( адрес , по которому мы будем ссылаться на неё ) и значение внутри «коробки» ( переменной ). И в дальнейшем свой тип.
В данном случае мы имеем некую переменную с именем «a» , значение которой принимает число 17. В паскале такое выражение записывается так a:= 17;. Обратите внимание на знак := ( двоеточие и равно , означает присвоить ) пробелы между ними и перед ставить не нужно.
Следует заметить , что имена переменных могут состоять из отдельных слов , например age:= 21; или my_age:= 21;. В названии переменных можно использовать латинские буквы , арабские цифры , а также символ подчеркивания _ . Использовать цифры в начале переменной нельзя ! ( 21age:= 21; ).
Переменные name и NaMe совершенно одинаковые , то есть паскаль не обращает внимания на регистр переменных.
Как видно из картинки выше , переменные могут нести в себе не только целые значения ( integer ), но и вещественные и строковые и некоторые другие.
a:= 3.5; — Вещественная переменная real
b:= «Hello»; — Строковая переменная string
Целочисленный тип переменной
Целочисленные переменные это переменные , которые несут в себе значение целых чисел например :
3 , 17 , 10 , -5 , 0
Пример объявления такой переменной ( переменные объявляются в блоке var ) :
var
x,y:integer;
Вещественный тип переменной
Вещественные переменные несут в себе нецелые числа . Например 3.5 , 2.7 . 1/2 тоже является вещественным значением и равна 0.5
Пример объявления такой переменной :
var
x,y:real;
Строковой тип переменной
Строковые переменные несут в себе символы или последовательность символов. Значение такой переменной строго записывается в кавычках. Например b:= «hello»;
Пример объявления такой переменной :
var
t,t1:string;
Существуют ещё два типа переменных . Логический ( boolean ) и символьный ( char ).
Переменные логического типа имеют только два значения true и false , а переменные символьного типа несут в себе только один символ. ( Явная схожесть с строковых типом , однако в строковой переменной можно использовать сразу несколько символов , в отличии от символьного , в котором можно использовать только один символ )
Пример объявления символьной переменной :
var
a:char;
Пример объявления логической переменной :
var
f:boolean;
Переменные имеют свою диапазон значений , к примеру переменная типа integer (целочисленная) не может превышать значение 32767 или быть меньше чем -32768.
Посмотреть таблицы с названием типов и их диапазонами можно здесь.
Все переменные объявляются в блоке var ( между словами var и begin ).
Как объявляются переменные ?
Вначале пишем имя своей переменной , например «a» далее следует задать тип нашей переменной . Это зависит от того , какой мы хотим её видеть. Например для хранения вашего имени в переменной , нам понадобится тип string. А для возраста тип integer.
Записывается это так — a:integer; Один и тот же тип можно задать нескольким переменным сразу . Например a,b,c:real;
Следует помнить о том , что каждая переменная до того , как мы присвоим ей какое-либо значение , имеет значение равное 0
Операции с переменными
С каждой переменной можно проводить свои операции . Например складывание , вычитание , деление , возведение в корень и многие другие.
Как видно на картинке , целочисленная переменная «a» имеет значение 10 , а целочисленная переменная «b» имеет значение 7 . Значение переменной «c» равно разнице «a и b» , проще говоря равно 3.
Остальные арифметические операции выполняются аналогично . Умножение заменяется знаком * , а деление / .
При таком взаимодействии переменных, большое внимание следует уделять типам переменных . Так к примеру существуют две переменные «a и b» , «a» равно 1 , «b» равно 2 . Переменная c равна частному «a на b» ( a/b ). В таком случае переменная «c» принимает вещественный тип.
Команды ввода и вывода на экран :
Для того , чтобы вывести переменную на экран нам понадобится команда writeln();.
Для того , чтобы ввести значение некоторой переменной через клавиатуру , нам понадобится команда readln();
Вывод на экран значения переменной «name» осуществляется так — writeln(name);.
Запись значения переменной с клавиатуры осуществляется так — readln(name);.
Остальные операции и функции с переменными вы можете посмотреть здесь.
Отличие writeln() от write()
Многие задаются таким вопросом : В чем отличие команды writeln() от команды write(). Отличий совсем немного , но они есть.
Команда writeln() — выводит определенную информация на экран ( текст, переменную и т.п ) и при этом переводит последующий текст на следующую строку ( линию ). Проще говоря , текст внутри writeln() занимает всю строку , а остальной текст будет печататься на следующей строке.
В случае , когда мы используем команду write() , последующий текст не переводится.
Наглядный пример работы данных команд :
program mypascal;
begin
write(‘Привет ‘);
writeln(‘ друг !’);
write(‘Как твои дела ?’);
На экран будут выведены две строчки. В первой строке будет написано » Привет друг ! «. Во второй строке будет написано «Как твои дела ?».
Отличия команды readln() и read() аналогичны.
Write — писать ; ln ( line ) — линия.
Источник: mypascal.ru
Типы переменных в Паскале: описание, свойства, примеры
Для того чтобы машина смогла обработать какие бы то ни было входные данные, она должна «понимать», к какому типу принадлежат переменные, в которые занесены значения. При отсутствии информации о формате данных компьютер не сможет определить, допустима ли в конкретном случае та или иная операция: например, интуитивно понятно, что нельзя возвести букву в степень или взять интеграл от строки. Таким образом, пользователь должен определить, какие действия позволительно осуществлять с каждой переменной.
Как и в других языках программирования высокого уровня, типы переменных в Паскале оптимизированы для выполнения задач различной направленности, имеют различный диапазон значений и длину в байтах.
Подразделение типов переменных
Типы переменных в Паскале делятся на простые и структурированные. Простые включают в себя вещественные и порядковые типы. К структурированным относятся массивы, записи, множества и файлы. Отдельно выделяются указатели, объекты и процедурные типы.
Рассмотрим порядковые и вещественные типы. К порядковым относятся 5 целых типов, логический, символьный, перечисляемый и тип-диапазон.
Порядковые типы
Существует 5 целых типов, различающихся длиной в байтах и диапазоном значений.
Длина Byte и ShortInt – 1 байт. Различие между ними состоит в том, что Byte хранит только неотрицательные значения, а ShortInt позволяет хранить и отрицательные (от -128 до +127). Аналогично соотносятся друг с другом типы Word и Integer, с тем лишь различием, что их размер – 2 байта.
Наконец, LongInt позволяет хранить и отрицательные, и положительные значения, используя 4 байта – в числовом измерении это 2 в 16-й степени в обе стороны от нуля. Различные виды переменных в Паскале способствуют эффективному решению пользовательских задач, поскольку в каждом конкретном случае может требоваться как малый, так и большой диапазон значений, а также не исключено наличие ограничений по объему выделяемой памяти.
Важно понимать, что нуль занимает столько же места в памяти, сколько и любое другое число. Таким образом, при формировании диапазона значений минимальное отрицательное число по модулю будет на единицу больше, чем положительное: например, от -128 до +127.
Переменные, принадлежащие к логическому типу (BOOLEAN), могут принимать значение TRUE (истина) или FALSE (ложь) и требуют 1 байт памяти.
Тип CHAR позволяет хранить любой из множества символов, существующих в памяти компьютера. При этом в символьных переменных в Паскале реально хранится лишь код знака, в соответствии с которым отображается его графическая форма.
Вещественные типы
Среди типов переменных в Паскале выделяется несколько числовых с возможностью записи дробной части. Различие между типами Single, Real, Double и Extended сводится к диапазону принимаемых значений, количеству значащих цифр после запятой и размеру в байтах.
В соответствии с порядком, представленным выше, переменная каждого типа будет занимать 4, 6, 8 или 10 байт.
Массивы
Структурированные типы данных являются сложными и позволяют объединять в рамках одной переменной ряд простых значений. Яркий пример представляет собой массив, который можно задать следующим образом:
String=array [1..100] of char;
Таким образом, мы получили тип под названием String, позволяющий задавать переменные длиной в 100 символов. В последней строке задан непосредственно одномерный массив Y, имеющий тип String. Описание переменных в Паскале осуществляется путём размещения с левой стороны идентификатора, а справа, после знака равенства, значения переменной.
Диапазон индексов, записанный в квадратных скобках, позволяет обращаться к каждому конкретному элементу массива:
В данном случае мы произвели чтение второго элемента созданного ранее массива Y.
Частным случаем одномерного массива являются и строковые переменные в Паскале, ведь строка – это последовательность символов, т. е. элементов типа char.
Записи
Запись состоит из нескольких полей, заполненных данными любых типов кроме файлового. В целом переменная такого типа похожа на элемент базы данных. Например, можно занести в неё имя человека и номер его телефона:
type NTel = Record
В первой строке слева указывается имя типа, а справа – служебное слово record. Во второй строке задано поле с именем, в третьей – номер телефона. Слово «end» говорит о том, что мы ввели все поля, которые хотели, и на этом процесс создания записи завершается.
Наконец в последней строке мы задаём переменную One, имеющую тип NTel.
Обращаться можно как к записи в целом, так и к отдельным её компонентам, например: one.NAME (т. е. имя_переменной.имя_поля_записи).
Файлы
Паскаль позволяет работать с текстовыми, типизированными и нетипизированными файлами, которые представляют собой структурированную последовательность компонент, имеющих одинаковый тип.
При чтении из файла или записи в него может использоваться как полный адрес, так и краткая его форма:
Краткая форма используется в случае размещения файла в папке, где хранится сама программа, обращающаяся к нему. Полная форма может использоваться в любых обстоятельствах.
Задать переменную файлового типа можно следующим образом:
f1: file of integer;
Для работы с файлами используются различные функции и процедуры, связывающие переменную с файлом на диске, открывающие его для чтения, записи и перезаписи, закрывающие по окончании работы, позволяющие создавать новое имя и удаляющие файл с компьютера.
В заключение
Без умения использовать различные типы переменных в Паскале пользователь не сможет реализовать даже простейшую задачу. Для того чтобы программа выполняла алгоритм без ошибок, требуется выучить как служебные слова, так и синтаксис, поскольку машина умеет «понимать» команды только в том случае, если они написаны единственно верным способом.
Источник: fb.ru