Паскаль абс как составить программу

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

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

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

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

Содержание

  • Кратко о языке программирования Pascal
  • Знакомство со средой PASCALABC.NET и написание первой программы

Язык Pascal – это относительно доступный и несложный язык программирования. Его изучают часто в школе в старших классах и на первых курсах высших и средних учебных заведениях. Этот язык программирования был разработан Никлаусом Виртом еще в 70-х годах прошлого века, а назван в честь французского математика Блеза Паскаля. Если вам интересно узнать подробнее об истории создания и развития данного языка программирования, вы можете найти эту информацию в Интернете, на той же самой Википедии. А мы не будем сильно на этом останавливаться.

Наша задача сегодня – написать первую собственную программу на языке Pascal. Писать мы будем для первого раза консольные приложения. А что же это такое – консольное приложение?

Мы привыкли, что, когда мы заходим в любую программу, перед нами появляется окно, в котором есть области для ввода информации, ее вывода, какие-то красиво оформленные таблички, кнопочки и многое другое. Тот же самый привычный нам MS Office Word. Консольное же приложение, если говорить простыми словами, представляет собой окно, в котором просто написаны буквы или цифры на одноцветном фоне, чаще всего на черном. Если вы видели хоть раз в своей жизни командную строку в Windows или операционную систему DOS, то вы представляете себе, что такое консоль. Но, как говориться, лучше один раз увидеть, чем сто раз услышать. В дальнейшем вы увидите, как это все выглядит.

Итак, что нам понадобится, чтобы написать свою первую программу? Естественно, компьютер, клавиатура, мышь (но можно на самом деле и без нее), немного желания и времени, ну и среда разработки. Последнее словосочетание, наверное, для большинства покажется незнакомым. Давайте же выяснять, что это за зверь такой – среда разработки. Это программный комплекс, используемый разработчиком для написания программ на конкретном языке программирования. Простым языком – это программа для написания программ. Она, чаще всего, включает в себя следующие компоненты:

  • текстовый редактор для написания кода программы (в рамках этой статьи это самая важная часть);
  • компилятор (выполняет обработку и перевод понятного нам кода на языке высокого уровня в более понятный для компьютера программный код низкого уровня) и/или интерпретатор (производит покомандный анализ кода и выполняет его, то есть запускает программу);
  • различные средства, облегающие и автоматизирующие процесс программирования;
  • отладчик (программа для поиска ошибок в коде программы).

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

Знакомство со средой PASCALABC.NET и написание первой программы

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

Для начала необходимо установить на свой компьютер среду разработки. На просторах Интернета можно найти различные вариации сред разработки, но я буду работать со средой разработки PASCAL ABC.NET. Эту среду вы можете найти в Интернете. Я бы рекомендовал вам использовать именно ее, так как по сравнению, например, с Turbo Pascal – в данной среде есть возможность копирования и вставки текста, а также поддерживается русский язык.

Кроме того, он более приятен и понятен в использовании, а также присутствует библиотека с задачником. Вы можете использовать и простой PASCAL ABC, но в версии .NET вы можете скомпилировать программу в файл с расширением .exe, то есть можете ей пользоваться полноценно, а в обычном PASCAL ABC вы можете запустить свою программу только непосредственно в самой среде разработки.

После того, как вы скачаете и установите среду разработки перед вами должно появиться примерно такое окно, которое изображено на рисунке 1. Место, в котором моргает курсор – это тот самый редактор кода, в который мы и будем вписывать команды для исполнения. В окне вывода, которое находится ниже, вы будете видеть результат выполнения программы, а также ошибки, которые могут возникать в процессе выполнения программы. Ну что-же, приступим к процессу программирования.

Рис.1. Среда разработки

Рис.1. Среда разработки

Для начала давайте придумаем название нашей программе. Я не буду долго думать и назову ее просто – «первая программа». Но называть программу можно только на английском языке, так как это не просто имя программы, а кусочек кода, а весь код пишется только на английском языке. Поэтому я ее буду называть «first_program». Обратите внимание, что вместо пробела я написал нижнее подчеркивание, так как Pascal понимает пробел как окончание команды. Теперь нам нужно объяснить языку что first_program – это именно название нашей программы, а не что-то другое (вы, кстати, можете придумать свое имя для вашей первой программы). Для этого нам нужно использовать команду (или по-научному оператор) Program. Эта команда говорит компьютеру, что через пробел будет указано название для программы. Итак, первая строчка кода у нас будет выглядеть так:

Program first_program;

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

Теперь давайте выведем текст: «Я написал первую программу! Ура!».

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

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

  • строковый (хранит любые символы),
  • целые числа (Integer),
  • вещественные числа (real).

Целые числа – это числа для счета, без запятой. Вещественные числа, хотя это не совсем так, но все-же – это числа с плавающей точкой, например – 3.1, 5.2 и так далее. Строковый тип данных – это как раз то, что нам нужно. В строковой переменной хранятся любые символы: буквы, цифры, знаки… За объявление переменных отвечает ключевое слово var. Конструкция выглядит следующим образом:

var [название переменной на англ. языке] : тип данных;

В нашем случае это будет выглядеть следующим образом:

var s: string;

После объявления переменной начнем писать основной код программы. Он записывается в так называемых операторных скобках (begin и end). Это означает, что начинается основной код программы с ключевого слово begin, а заканчивается ключевым словом end. В конце программы после последнего ключевого слова end ставится точка (после слова begin точка с запятой не ставится).

Итак, после объявления переменных на следующей строчке пишем слово begin и переходим на следующую строчку. Начнем писать текст программы. Сперва в объявленную переменную s (можно было назвать и по-другому) нужно занести наше предложение «Я написал первую программу! Ура!», которое мы хотим вывести. Пока в нашей переменной (баночке) ничего нет. Чтобы ее заполнить – ей нужно присвоить какое-либо значение. Процесс, при котором мы помещаем в нашу банку (переменную) какого-либо значения (в нашем случае это предложение), называется присвоение и обозначается таким символом (:=) – двоеточие и равно. Выглядит это следующим образом:

s := 'Я написал первую программу! Ура!';

Текст, который мы вводим в строковую переменную записывается в одинарных кавычках. Теперь компьютер знает, что в баночке (переменной) под именем s хранится набор символов – наше предложение. Теперь нам необходимо вывести содержимое переменной на экран. Для этого в языке Паскаль предусмотрены операторы (команды) write и writeln. Первая команда выводит на экран содержимое переменной или текст, а вторая делает тоже самое, только с переходом на другую строку, то есть начинает выводить значение с новой строки. Запишем это:

write(s);

В конце ставим точку и проверяем, все ли верно у нас написано. В итоге должен получиться следующий код:

Program first_program;
var s: string;
begin
s := 'Я написал первую программу! Ура!';
write (s);
end.

Проверьте, правильно ли у вас все получилось. После этого нам необходимо запустить программу и проверить ее на работоспособность. Найдите на панели инструментов вверху кнопочку с зеленым треугольником или нажмите на кнопку в меню: Программа -> Выполнить. После этого, если все было правильно переписано, в Окне вывода должно появиться предложение «Я написал первую программу! Ура!». Как это должно выглядеть вы можете видеть на рисунке 2.

Рис. 2. Результат работы программы

Рис. 2. Результат работы программы

Ну что же, поздравляю! Вы написали первую настоящую программу на языке Паскаль. На первый взгляд может показаться, что это какая-то ерунда, а не программа, но на самом деле все эти знания вы будете использовать при написании прикладных программ более высокого уровня. Кстати, эту программу можно записать короче. Помните я говорил, что оператор вывода write выводит записанный в скобочках текст или значение переменной. Поэтому, мы можем не объявлять переменную, а сразу записать текст в скобочках. В итоге получится вот такой код:

Program first_program;
begin
write ('Я написал первую программу! Ура!');
end.

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

Давайте теперь немного усложним задачу. Многие знают, что программирование тесно связано с математикой, так как большинство программ выполняют различные операции. Попробуем написать такую программу: «два числа вводятся с клавиатуры, они складываются, и программа выводит результат – сумму введенных с клавиатуры чисел».

Сперва напишем программу для целых чисел – чисел, используемых при счете (число 2 – целое число в программировании, тип данных Integer, а 2.3 – число с плавающей точкой, тип данных real). При сложении двух целых чисел получается целое число, значит и входные числа, и результат будут типа данных Integer.

Для начала к нашей объявленной переменной добавим еще три, назовем их: celoe1 для первого числа, celoe2 для второго числа и celoe3 для хранения результата сложения двух чисел. Получим баночки (переменные), в которых будут хранится целые числа. Измененная часть программы будет выглядеть так:

var celoe1, celoe2, celoe3: integer;
s: string;

Теперь переходим к изменению тела программы (кода, находящегося между begin и end). Для начала нужно инициализировать ввод с клавиатуры двух чисел. Сначала выведем подсказку: введите первое число. Для вывода текста у нас, как вы помните, используется оператор (команда) write(), но нам нужно выводить каждую подсказку с новой строки, поэтому будем использовать оператор writeln(). Получим следующий код:

writeln ('Введите первое число');

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

После первой подсказки на новой строке пишем:

read (celoe1); 

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

celoe3 := celoe1 + celoe2;

Выведем результат. Для вывода текста или содержания переменной у нас используется оператор write() и writeln(). Для красоты выведем результат на новой строке. Для этого будем использовать writeln(). Получим:

writeln ('Сумма чисел = ', celoe3);

Обратите внимание, что мы выводим и текст, и значение переменной. Это сделано для того, чтобы не писать лишний раз оператор вывода. Если нужно вывести несколько операндов (значение оператора, например, переменная celoe3) сразу, то можно записывать их все в скобки в нужном порядке, разделяя между собой запятой. В итоге должен получиться следующий код:

Program first_program;
var celoe1, celoe2, celoe3: integer;
s: string;
begin
writeln ('Введите первое число');
read (celoe1);
writeln ('Введите второе число');
read (celoe2); 
celoe3 := celoe1 + celoe2;
writeln ('Сумма чисел = ', celoe3);
s := 'Я написал первую программу! Ура!';
write (s);
end.

Если вы все сделали правильно, то программа должна выдать результат, изображенный на рисунке 3.

Рис. 3. Сложение двух чисел

Рис. 3. Сложение двух чисел

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

На первый взгляд нужно поменять лишь формулу для расчета, но нужно вспомнить, что не все числа будут делиться нацело, может оставаться остаток и число будет уже не целое, а с десятичной дробью, а это значит, что тип данных Integer нам уже не подойдет. Нужно использовать тип данных Real. При этом представим, что нам неизвестно, какое число будет введено с клавиатуры – целое или же дробное, поэтому и для введенных с клавиатуры чисел мы будем использовать тип данных Real. Перепишем строку, где мы объявляли целые числа. Назовем наши вещественные переменные v1, v2 и rez. Тогда получим:

var v1, v2, rez: real;
s: string;

Переходим в тело программы. Подсказки о вводе первого и второго числа мы оставляем как есть, а вот в операторе ввода read изменяем название переменных на v1 и v2. Теперь вместо формулы сложения напишем другую формулу:

rez := (v1 / v2) * 3; 

Обращаю ваше внимание, что мы умножаем на три результат деления первого числа на второго, поэтому мы записали деление в скобках (вспоминаем правила очередности операций с числами в математике). Давайте изменим еще и вывод получившейся информации на экран, выведем все в красивом виде. Для этого будем использовать вывод нескольких операндов в удобном для нас порядке через запятую, о котором мы говорили выше. Вначале выведем знак открытой скобочки, затем выведем значение первой переменной, затем выведем символ знака деления, после этого значение второй переменной, затем символы «) * 3 = » и, наконец, значение переменной с результатом. Звучит сложно, но попробуйте вникнуть в это:

writeln ('(', v1, ' / ', v2, ') * 3 = ', rez);

После внесения всех изменений у вас должен получиться следующий код программы:

Program first_program;
var v1, v2, rez: real;
s: string;
begin
writeln ('Введите первое число');
read (v1);
writeln ('Введите второе число');
read (v2); 
rez:= (v1 / v2) * 3;
writeln ('(', v1, ' / ', v2, ') * 3 = ', rez);
s := 'Я написал первую программу! Ура!';
write (s);
end.

Ну что же, запускаем программу и получаем результат (я ввел первое число = 8.2, второе число = 2), изображенный на рисунке 4.

Рис. 4. Числа с дробью

Рис. 4. Числа с дробью

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

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

16 января 2019 в 00:48
| Обновлено 7 ноября 2020 в 01:20 (редакция)
Опубликовано:

Статьи

Начало. Тексты программ

Материал из Вики проекта PascalABC.NET

Перейти к навигацииПерейти к поиску

HelloWorld

begin
  writeln('Привет, мир!');
end.

Это — самая первая программа на любом языке программирования.

Вычисление площади круга

const Pi = 3.1415;

begin
  var r := ReadReal('Введите радиус круга: ');
  var S := Pi*r*r;
  Println('Площадь круга равна ',S);
end.

Здесь иллюстрируется ввод, затем вычисления и вывод результата.

Вычисление A8

Код на PascalABC.NET:

var a: real;
begin
  var a := ReadReal('Введите a: ');
  var a2,a4,a8: real; // вспомогательные переменные
  var a2 := a * a;
  var a4 := a2 * a2;
  var a8 := a4 * a4;
  Println(a,$'{a} в степени 8 = {a8}');
end.

Здесь иллюстрируется использование промежуточных переменных и вычислений: без промежуточных вычислений мы бы потратили 7 умножений, а с промежуточными — всего 3.

Вычисление расстояния между двумя точками на прямой

Код на Pascal:

var 
  a,b: real; // координаты точек
  r: real;   // расстояние между точками на прямой
begin
  write('Введите координату точки a: ');
  readln(a);
  write('Введите координату точки b: ');
  readln(b);
  r := abs(a-b);
  writeln('Расстояние между точками = ',r);
end.

Здесь иллюстрируется использование стандартной функции abs

Вычисление гипотенузы по катетам

var 
  a,b: real; // катеты
  c: real;   // гипотенуза
begin
  write('Введите катеты прямоугольного треугольника: ');
  readln(a,b);
  c := sqrt(a*a+b*b);
  writeln('Гипотенуза = ',c);
end.

Здесь иллюстрируется использование стандартной функции sqrt

Бросание кубиков

var 
  r1,r2: integer; // значения на верхних гранях кубиков
begin
  r1 := Random(6)+1;
  r2 := Random(6)+1;
  writeln('Очки, выыпавшие на кубиках: ',r1,' ',r2);
  writeln('Сумма очков равна ',r1+r2);
end.

Здесь иллюстрируется использование стандартной функции Random

Обмен значений двух переменных с использованием третьей

var 
  x,y: real;
  v: real; // вспомогательная переменная
begin
  write('Введите x,y: ');
  readln(x,y);
  v := x;
  x := y;
  y := v;
  writeln('Новые значения x,y: ',x,' ',y);
end.

Это — классическая задача о перемене местами значений двух переменных с использованием третьей переменной. Она часто возникает в других задачах. Интересно, что x и y являются как входными, так и выходными переменными

Код на PascalABC.NET:

var x,y: real;
begin
  write('Введите x,y: ');
  readln(x,y);
  var v: real; // вспомогательная переменная
  v := x;
  x := y;
  y := v;
  writeln('Новые значения x,y: ',x,' ',y);
end.

Данное решение использует внутриблочное описание переменной. В результате вспомогательная переменная описывается первый раз лишь в тот момент, в который она действительно понадобилась

Выделение цифр из двузначного числа

var 
  x: integer;     // двузначное число
  c1,c2: integer; // первая и вторая цифры двузначного числа
begin
  write('Введите двузначное число: ');
  readln(x);
  c1 := x div 10;
  c2 := x mod 10;
  writeln('Первая и вторая цифры двузначного числа: ',c1,' ',c2);
end.

Ссылки

  • Программы для начинающих
  • Сайт PascalABC.NET: Программы и алгоритмы для начинающих


Программы » 

Статьи

Здравствуйте, начинающие программисты! Из данной статьи вы узнаете как создать программу на Pascal ABC, например, простейший калькулятор.


Как создать программу на Pascal ABC. Простейший калькулятор на Паскале

Заходим в программу Pascal ABC, перед нами открывается чистый лист с названием Program1.pas — это файл программных модулей для написания кода. В дальнейшем его можно компилировать в .exe — исполняемый файл, который будет открывать созданную нами программу.

Для начала назовём нашу программу, к примеру, «Решебник», в коде пишем:

Program reshebnik;

Как создать программу на Pascal ABC. Простейший калькулятор на Паскале

Не забывайте в конце каждой строчки обязательно ставить точку с запятой. Так как мы создаём простейший калькулятор, наш «Решебник» будет вычислять буквально одно действие — сложение двух переменных, то есть a+b=c. Во второй строчке кода объявляем переменные a, b, c и добавляем integer (с англ. — «целое») — уточнение, что a, b, c — целые числа:

Var a, b, c: integer;

Как создать программу на Pascal ABC. Простейший калькулятор на Паскале

Var — в языках программирования означает «переменная».

Теперь создадим блок команд (операторов), который начинается со слова begin и заканчивается словом end. Пишем:

begin

Следующей сторочкой предложим пользователю ввести число. Инструкция Write (с анг. — «запись») выведет на экран монитора наше сообщение, WriteLN — ещё и переведёт курсор в начало следующей стороки, то есть пишем в файле четвёртой строчкой:

WriteLN (‘Введите число A:’);

Пятой строчкой выполним ввод пользователя с помощью команды read (с англ. — «читать»):

ReadLN (a);

То же самое проделаем со вторым числом b:

WriteLN (‘Введите число B:.’);
ReadLN (b);

Выполняем подсчёт введённых переменных. Знак «:=» означает присваивание, присваиваем числу c значение a+b:

c := a+b;

Выводим ответ и завершаем блок операторов:

WriteLN (‘Ответ’, c);
end.

Итак, наш «Решебник» готов к использованию. Проверим, как он работает. В Верхнем меню программы Pascal ABC выбираем Программа -> Выполнить.

Program reshebnik;
Var a, b, c: integer;
begin
WriteLN (‘Введите число A:’);
ReadLN (a);
WriteLN (‘Введите число B:’);
ReadLN (b);
c := a+b;
WriteLN (‘Ответ’, c);
end.

Как создать программу на Pascal ABC. Простейший калькулятор на Паскале

Вот и все. Надеюсь, всё понятно. Желаю удачи и хороших результатов!




Дата публикации: 2011-08-16
Опубликовал:
Последний раз редактировалось:2021-10-28

  1. Основы
  2. Таблица типов
  3. Справочные примеры PascalABC

Синтаксис программ[править]

Минимальная структура программы:

begin
  {main code here}
end.

Пример:

begin
  writeln('Hello world');
end.

Константы[править]

В данной секции располагаются определенные пользователем константы. Синтаксис объявления констант выглядит так:

const
  <имя> = <значение>;

Например:

const
  a = 12;
  s = 'ABC.NET';

Секция «var»[править]

Данная секция предназначена для переменных и массивов. Переменные объявляются так:

Простейшие типы[править]

Тип строка[править]

Тип строка — это тип переменных, который позволяет хранить в переменной любой текст. Объявление строковой переменной:

Строки могут быть не более 255 символов. Изначальное значение строковых переменных — это «пустая строка» — ».

Операция Описание
s1 + s2 Объединение строк
s1*n Дублирование строки n раз

Тип целое число integer[править]

Кроме типа string в PascalABC.Net есть еще тип целое число — «integer». Само число a может принимать (в PascalABC.Net) значения от -32768 до 32767. Пример объявления переменной типа integer:

Операция Описание
a + b Сложение чисел
a — b Разность чисел
a * b Произведение чисел
a div b Целочисленное деление
a mod b Остаток от деления

Тип вещественное число real[править]

Декларация переменной типа real:

Пример присваивания переменной данного типа:

a := 1.0; // Не 1,0!
a := 1; // Эквивалентно 1.0.
Операция Описание
a + b Сложение чисел
a — b Разность чисел
a * b Произведение чисел
a / b Частное чисел

Тип символ[править]

Тип символ или «char» используется в основном для хранения одного любого символа вне зависимости от того, является ли данный символ буквой или цифрой. Объявление переменной символьного типа:

Секция «begin — end»[править]

Данный раздел программы содержит все команды, выполняемые при ее запуске. Данная секция программы выглядит так:

begin
 <команда_1>;
 ...
 <команда_n>;
end.

Комментарии[править]

Комментарий — это часть кода, которую игнорирует компилятор. Он создается следующим образом:

Или:

Массивы[править]

Массивы — это именованный список элементов одного типа.

P. S. Для работы с массивами существует учебный модуль Arrays.

Статические[править]

Статические массивы имеют фиксированный размер. Общий синтаксис объявления данных массивов выглядит так:

var
  <имя>: array [0..N - 1] of <тип>;

, где N — длина массива.

Пример:

const
  N = 5;

var
  A: array [0..N] of integer;
  K: integer;
  j: integer;
  Found: boolean;

begin
  Found := false;
  K := ReadInteger('K:');
  
  for var i := 0 to N - 1 do
  begin
    if not Found then
      Readln(A[i])
    else
      Readln(A[i + 1]);
    
    if not Found and (A[i] = K) then
    begin
      Found := true;
      j := i + 1;
    end;
  end;
  
  A[j] := A[N];
  
  for var i := 0 to N do
    WriteFormat('{0} ', A[i]);
end.

Посмотреть статью с примером.

Матрицы[править]

Двумерные[править]

Матрица — это n-мерный список значений, имеющий свой тип и ограниченный некоторыми значениями. Пока будем рассматривать только статические двухмерные и трехмерные матрицы. Перед тем, как перейти к их изучению вспомни таблицы в Excel. Каждая таблица имеет свой размер — ширину и длину. Возьмем за правило ассоциировать двухмерные матрицы с таблицами. Объявление матрицы:

var
  <имя>: array [0..N - 1, 0..M - 1] of <тип>;

, где N, M количество строчек и столбцов соответственно.

Трехмерные[править]

Трехмерный матрицы обладают третьим измерением:

var
  <имя>: arr, 0..K - 1] of <тип>;

N-мерные матрицы[править]

Декларация N-мерной матрицы:

var
  <имя>: array [0..A - 1, 0..B - 1, ..., 0..Z - 1] of <тип>;

, где A..Z означают количество элементов в соответствующем измерении.

Статические и динамические массивы[править]

Динамические массивы позволяют управлять количеством элементом в каждом из их измерений во время выполнения программы.

Пример объявления массива: Статический Динамический Вызов SetLength (для динамического массива)
Векторный
<имя>: array [0..N - 1] of <тип>
<имя>: array of <тип>
SetLength(<имя>, N)
Двумерный
<имя>: array [0..N - 1, 0..M - 1] of <тип>
<имя>: array [,] of <тип>
SetLength(<имя>, N, M)
Трехмерный
<имя>: array [0..N - 1, 0..M - 1, 0..K - 1] of <тип>
<имя>: array [,,] of <тип>
SetLength(<имя>, N, M, K)

Понятие индекса массива[править]

Индекс массива — это номер элемента массива. Индекс может принимать значения [0, N — 1], где N — количество элементов некоторой размерности. Обращение к элементу одномерного массива с некоторым индексом:

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

N-мерный массив Общий синтаксис указания элемента массива Пример
Векторный
<имя>[i]
A[1]
Двумерный
<имя>[i, j]
A[1, 1]
Трехмерный
<имя>[i, j, k]
A[1, 1, 1]

Где i, j, k — индексы.

Индекс в виде значения элемента массива[править]

Индексом может быть значение элемента массива:

Операторы, стандартные процедуры и функции[править]

Вывода на экран[править]

Вывод текста[править]

Вывести текст — это значит отобразить текст на экране. Общий синтаксис для вывода текста выглядит так:

Вывод значений переменных[править]

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

Write(<имя_1>, <имя_2>, ... , <имя_n>);

Например:

var
  A, B, C: integer;

begin
  A := 1;
  B := 6;
  C := 2;
  Write(A, B, C);
end.

Для перехода на новую строку после вывода последнего значения используйте Writeln вместо Write.

Ввод данных с клавиатуры[править]

Чтение с клавиатуры — это процесс ввода данных с клавиатуры и запись в соответствующий элемент программы этих данных. Элементами программы являются как переменные, так и элементы массивов. Тип данных, вводимых с клавиатуры, должен соответствовать типу элемента, в который записываются данные с клавиатуры. Использование Readln для чтения с клавиатуры и перехода на новую строку:

Readln(<имя_переменной_1>, <имя_переменной_2>, ... ,<имя_переменной_n>);

Условный оператор[править]

Общий синтаксис условного оператора if:

if (<условие>) then
begin
  <команда_1>;
  ...
  <команда_N>;
end;

Команды <команда_1>…<команда_N> будут выполнены только при истинности условия.

Сравнение[править]

Условные обозначения в программировании операций сравнения приведены в таблице:

Операция Эквивалент в Паскале
≤ (меньше или равно) <=
≥ (больше или равно) >=
< (меньше) <
> (больше) >
= (равно) =
≠ (не равно) <>

Общий синтаксис сравнения двух величин:

<элемент_1><знак_сравнения><элемент_2>;

Пример:

const
  N = 10;

var
  A: array of integer; 
  Max: integer;

begin
  SetLength(A, N);
  for var i := 0 to N - 1 do A[i] := Random(100); 
  
  Max := integer.MinValue; 
  for var i := 0 to N - 1 do 
    if A[i] > Max then Max := A[i];
  
  Writeln(A); 
  Writeln(Max); 
end.

Посмотреть статью с примером.

Оператор case[править]

Оператор case используется для сопоставления значения некоторого выражения с константными значениями:

case <выражение> of
  <константное_значение_1>: begin <операторы_1>; end;
  ...
  <константное_значение_n>: begin <операторы_n>; end;
  else <операторы>
end;

Если некоторое i-тое константное выражение совпадает с значением выражения, то i-ая группа операторов будет выполнена. Группа операторов после else будет выполнена, если значение выражения не совпало ни с одной из констант. begin — end не нужны, если после двоеточия только один оператор.

Пример:

var
  S, S2: string;
  i: integer := 1;

// Выделение слова из строки:
function GetWord(s: string; var from: integer): string;
begin
  while (from <= Length(s)) and char.IsLetter(s.Chars[from]) do
  begin
    Result += s.Chars[from];
    Inc(from);
  end;
end;

begin
  Readln(S);
  
  var L := Length(S);
  while i <= L do
  begin
    while (i <= L) and not char.IsLetter(S.Chars[i]) do
    begin
      S2 += S.Chars[i];
      Inc(i);
    end;
    var w := GetWord(S, i);
    // Преобразование числа в слово:
    case LowerCase(w) of
      'ноль', 'нуль': S2 += '0';
      'один': S2 += '1';
      'два': S2 += '2';
      'три': S2 += '3';
      'четыре': S2 += '4';
      'пять': S2 += '5';
      'шесть': S2 += '6';
      'семь': S2 += '7';
      'восемь': S2 += '8';
      'девять': S2 += '9';
      else S2 += w
    end;
  end;
  S := S2;
  
  Writeln(S2);
end.

Посмотреть статью с примером.

Оператор цикла while[править]

Оператор цикла позволяет выполнять группу операторов (или один) циклически пока условие является истинным.

while (<условие>) do
begin
  <оператор_1>;
  ...
  <оператор_n>
end;

Пример:

var
  S, S2: string;
  i: integer := 1;

begin
  Readln(S);
  // Пока не дошли до конца строки:
  while i <= Length(S) do
  begin
    if S.Chars[i] = ' ' then
    begin
      S2 += ' ';
      Inc(i);
    end;
    // Пропускаем все лишние пробелы.
    while (i <= Length(S)) and (S.Chars[i] = ' ') do Inc(i);
    // Бежим по строке до тех пор пока не встретим пробел.
    while (i <= Length(S)) and (S.Chars[i] <> ' ') do
    begin
      S2 += S.Chars[i];
      Inc(i);
    end;
  end;
  S := S2;
  Writeln(S);
end.

Посмотреть статью с примером.

Счетчик[править]

«Счетчик» — это оператор цикла for, выполняющий группу операторов определенное количество раз.
Общий синтаксис оператора цикла for:

for var <переменная_цикла> := <значение_1> to <значение_2> do
begin
  <оператор_1>;
  ...
  <оператор_n>;
end;

Если второе значение меньше первого — используйте downto вместо to.

Пример:

const
  N = 10;

var
  A: array of integer;

begin
  SetLength(A, N); 
  for var i := 0 to N - 1 do Readln(A[i]); 
  Writeln(A); 
end.

Посмотреть статью с примером.

Оператор break[править]

Для выхода из цикла можно использовать break:

const
  N = 9;

var
  A: array [0..N - 1] of integer;


begin
  for var i := 0 to N - 1 do
  begin
    Readln(A[i]);
    if A[i] mod 2 = 0 then
      break;
  end;
end.

Новая итерация цикла[править]

Для завершения текущей итерации цикла и начала другой используйте оператор continue.

Функции[править]

Общий синтаксис описания функции:

function <имя>(<описание_параметров>): <тип_возвращаемого_значения>;
begin
  <оператор_1>;
  ...
  <оператор_n>;
end;

или:

function <имя>(<описание_параметров>) := <выражение>; // Вывод типа возвращаемого значения производится на основе типа выражения.

Можно устанавливать значение переменной Result для указания возвращаемого значения.

Пример:

function F(a, b: integer): integer;
begin
  if a < b then Result := a else Result := F(a - b, b);
end;

begin
  Writeln(F(ReadlnInteger('A:'), ReadlnInteger('B:')));
end.

Посмотреть статью с примером.

Процедуры[править]

Синтаксис объявления процедуры:

procedure <имя>(<описание_параметров>);
begin
  <оператор_1>;
  ...
  <оператор_n>;
end;

или:

procedure <имя>(<описание_параметров>) := <оператор>;

Пример:

uses Crt, GraphABC, ABCButtons;
var
  B: ButtonABC;

procedure P() := Writeln('Привет мир!'); // Сокращённый синтаксис объявления процедур, содержащих один оператор.

begin
  B := new ButtonABC(0, 0, 100, 40, 'Button', clRed);
  B.OnClick := P;
end.

Посмотреть статью с примером.

Оператор exit[править]

Для выхода из некоторой функции или процедуры можно использовать оператор exit.

Встроенные процедуры и функции[править]

Описание Комментарии
Random(<максимальное_значение>)
Генерирует случайное число в диапазоне [0, максимальное_значение — 1].
Inc(<имя>)
Увеличивает значение переменной на 1 (переменная типа real не может быть параметром).
Dec(<имя>)
Уменьшает значение переменной на 1 (переменная типа real не может быть параметром).
Succ(<символ>)
Возвращает следующий символу символ.
Pred(<символ>)
Возвращает предыдущий символу символ.

Подключение модулей[править]

Модуль — это часть программы, вынесенная в отдельный файл. Для подключения модуля следует писать в разделе uses его имя:

uses <имя_модуля_1>, <имя_модуля_2>, ... , <имя_модуля_n>;

Свои типы[править]

Примеры объявления своих типов:

type
  Int = integer; // Тип числа.
  ShortStr = string[255]; // Тип короткой строки.
  Numbers = (One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten); // Тип названия числа.
  TArray<T> = array of T; // Тип одномерного массива с элементами типа T.
  TMatrix<T> = array [,] of T; // Тип матрицы с элементами типа T.

Пример вывода обобщённого массива:

type
  TArray<T> = array of T;

procedure Show<T>(a: TArray<T>);
begin
  for var i := 0 to a.Length - 1 do
    Writeln(a[i]);
end;

begin
  Show(ArrRandom());
end.

Примеры[править]

Мигание текста[править]

uses System;

begin
  var rnd := new Random();
  while true do
  begin
    Console.SetCursorPosition(0, 0);
    Console.ForegroundColor := ConsoleColor(rnd.Next(15));
    Console.Write('Hello world!');
    Sleep(200);
  end;
end.

Класс ввода данных пользователя[править]

uses FormsABC;
const
  Width = 50;

type
  TUserData = class
  private 
    _Name, _Password: Field;
    _LogIn: Button;
    _W: integer;
    
    function GetW()  := _W;
    
    procedure SetW(v: integer);
    begin
      _Name.FieldWidth := v;
      _Password.FieldWidth := v;
      _W := v;
    end;
  
  public 
    property Name: Field read _Name;
    property Password: Field read _Password;
    property LogIn: Button read _LogIn;
    property W: integer read GetW write SetW;
    
    constructor(nText, pText, logInText: string);
    begin
      _Name := new Field(nText, Width);
      _Password := new Field(pText, Width);
      _LogIn := new Button(logInText);
    end;
  end;

begin
  var UserInput := new TUserData('Name', 'Password', 'Ok');
end.

var x, y: real;
begin

  writeln('введите введите x');
  readln(x);
  if x>0 then y:=sqrt(x)  else  y:=sqr(x);
  writeln(y);
  writeln('введите x');
  readln(x);
  if x=0 then y:=0 else y:=0;
  writeln(y);
  writeln('введите x');
  readln(x);
  if x<0 then y:=x+x else y:=x+x;
  writeln(y);
  end.

Понравилась статья? Поделить с друзьями:
  • Как найти сиделку для онкобольного
  • Как найти фотку на аву
  • Как найти редактор по фото
  • Как найти своего друга в варфейс
  • Как найти мне телефончик