Как сделать квадрат из символов в паскале

Добавил пользователь Валентин П.
Обновлено: 04.10.2024

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

          Рассмотрим работу приведённого выше оператора присваивания на примере фрагмента маленькой программы:

  • Вопрос. А что бы было, если первые два оператора отсутствовали? Каким бы стал Z?
  • Ответ. В этом случае интерпретатор принял бы значения X и Y по умолчанию равными 0, вычислил бы с этими нулями значение правой части и в результате ответ был бы равен 7.

          Пока всё было похоже на обычную математику. Но есть одно "но". Что происходит, если программа содержит следующие строки:

          Если читать эту запись математическим языком, то первая строка будет вполне нормальной - "Икс равен двум". Но вот вторая строчка приведёт в изумление тех, кто не знаком с этим делом. Скажут же: "Как это - Икс равен Икс плюс один?!". Однако, стоит привыкнуть к тому, что оператор присваивания работает не так, как простое равенство в математике. Давайте разберём этот фрагмент.

  • Вопрос. Чему будет равно значение Икс после выполнения операторов присваивания на данном фрагменте программы?
  • Решение. Сначала переменной X присваивается значение 2. Затем интерпретатор обращается ко второй части оператора присваивания, находя в памяти значение X, которое равно двум. Просто-напросто прибавляя к нему 1, получает 3. Присваивает новое значение 3 привой части оператора - Иксу. Старое значение - 2 - просто исчезает, на его место встаёт значение 3.
  • Ответ. После выполнение операторов присваивания на данном фрагменте программы, значение Икс станет равным 3.

Вернёмся к типам данных

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

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

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

          Базовые типы данных - это:

  • целый тип;
  • логический тип;
  • символьный (строковый) тип;
  • перечисляемый тип;
  • тип-диапозон;
  • вещественный тип.

          В математике рассматривается бесконечное число целых чисел. Целый тип - это интервал целых чисел.

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

Целые (Ordinal) типы данных в паскале

Тип Значение Формат Размер памяти
ShortInt
Integer
LongInt
Byte
Word
-128..127
-32768..32767
-2147483648..2147483647
0..255
0..65535
Знаковый
Знаковый
Знаковый
Беззнаковый
Беззнаковый
8 бит = 1 байт
16 бит = 2 байта
32 бита = 4 байта
8 бит = 1 байт
16 бит = 2 байта

Возникает вопрос - почему только в паскале? Ответ - в бейсике используются только два целочисленных типа - INTEGER и LONG (Integer и LongInt в паскале соответственно).

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

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

А самое главное-то - напоследок!

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

          Во-первых, давайте поговорим о логических скобках. Роль логических скобок такова: они начинают и заканчивают блоки операторов (в которых, в свою очередь, могут быть другие логические скобки, в тех - другие и т.д.). В паскале основными операторами логических скобок являются Begin и End. После оператора Begin символ ";" не ставится, так как он "заканчивает" оператор, а Begin - это начало. А вот после End - точка с запятой ставится. При чём всё тело программы Начинается оператором Begin (само собой, без точки), а заканчивается оператором End с точкой (именно точкой, а не точкой с запятой, так как это - глобальные логические скобки). Сама программа разбивается на блоки. Как я уже сказал - основной блок - тело программы в целом, не считая описания переменный, имени программы и т.п. Для наглядного обозначения блоков программы используется "лесенка" - вложенные блоки отмечаются пустым пространством перед каждой строкой в них. Так показан блок тела программы на следующем изображении. Основной блок программы может содержать подблоки, те - свои подблоки и т.д. Естественно, лесенка будет увеличиваться и сдвигаться вправо. Кстати, для быстрого сдвига обычно используют клавишу Tab или несколько пробелов (Лучше, конечно, использовать Tab). Думаю, понятно. Если не понятно, то не отчаивайтесь - вы всё поймёте позже.

          Также задаётся имя программы оператором Program (например, Program count; или Program Dima; - имя программы не должно совпадать с именем какой-либо другой программной единицы в данной программе. Имя программы также записывается по правилу написания программных элементов (в разделе Переменные)). Оператор имени программы Program можно не ставить, хотя лучше делать это. Затем оператор Var для описания переменных и других элементов. Возмоожны и некоторые другие операторы, такие, как Uses - подключение библиотек. Но об этом - позже.

          Итак, общая структура программы на паскале должна выглядеть примерно так:

Ах да! Функции - куда же без них?!

          Об основных операторах поговорили, а про функции и думать забыли! Итак, вот таблица стандартных функций бейсика и паскаля:

Бейсик Функция Описание Пример Результат ABS Возвращает абсолютную величину (модуль) аргумента ? ABS (-2.56) 2,56 SQR Возвращает квадратный корень из аргумента (функция применима только к положительным аргументам!) ? SQR (9) 3 SIN Возвращает значение синуса аргумента (аргумент указывается в радианах) ? SIN (3) 0,14112 COS Возвращает значение косинуса аргумента (аргумент указывается в радианах) ? COS (3) 0,98992599 TAN Возвращает значение тангенса аргумента (аргумент указывается в радианах; не забыли, как котангенс находится?) ? TAN (3) -0,1425465 EXP Находит значение показательной функции e^x, где x - аргумент, а e - основание натурального логарифма, равное ~2,718. ? EXP (1) 2,178282 LOG Возвращает логарифм по основанию e ? LOG (3) 1,09861229 INT Возвращает целую часть аргумента (от англ. INTeger - целый) ? INT (31.5)
? INT(3.14) 31
2 SGN Возвращает 1 если аргумент больше нуля; 0 если аргумент равен нулю и -1 если аргумент меньше нуля (от англ. SiGN - знак) ? SGN (3)
? SGN (0)
? SGN (-15) 1
0
-1 Паскаль Функция Описание Пример Результат SIN(X) Возвращает значение синуса аргумента (аргумент указывается в радианах) WriteLn(SIN (3)); 0,14112 COS(X) Возвращает значение косинуса аргумента (аргумент указывается в радианах) WriteLn(COS(3)); 0,98992599 ARCTAN(X) Возвращает значение арктангенса аргумента (аргумент указывается в радианах) WriteLn(ARCTAN(3)); 1.2490457724E+00 LN(X) Возвращает натуральный логарифм x (при x больше 0) WriteLn(LN(3)); 1,0986122887E+00 SQRT(X) Возвращает квадратный корень из X (при X больше или равном 0) WriteLn(SQRT(9)); 3 SQR(X) Возвращает квадрат X, который может быть вещественным или целым WriteLn(SQR(3)); 9 TRUNC(X) Выделяет целую часть, результат преобразует в LongInt WriteLn(TRUNC(3.14)); 3 INT(X) Возвращает целую часть аргумента, преобразует её в Real WriteLn(INT(31.5));
WriteLn(INT(3.14)); 3 ROUND(X) Округляет вещественное число до целого и преобразует его в Longint (напоминаю про округление - если дробная часть больше 0.5, то к целой части прибавляется 1, если нет, то не прибавляется) WriteLn(ROUND(3.14));
WriteLn(ROUND(3.64)); 3

          Есть также и такие функции: ASC, CHR$, INPUT$, LEN, LEFT$, RIGHT$, MID$. Расскажу коротко о каждой. ASC - функция определяет код ASCII для первого символа строковой переменной - ASC (строковая_переменная). CHR$ - наоборот, даст нам символ, код которого указан в скобках. INPUT$ - эта функция будет ожидять ввода N символов, которые будут обрабатывться программой сразу после набора их на клавиатуре, не дожидаясь нажатия клавиши Enter. Например, X$=INPUT$(5) - в переменную X$ будут занесены пять введённыз с клавиатуры символов. Дальше. Вункция LEN определяет длину строковой переменной, то есть, сколько в ней символов. Функция LEFT$ выделяет из заданной строки n символов слева - LEFT (X$,4) - из строковой переменной будет выделено 4 первых символа. То же и с функцией RIGHT$ - всё так же, только справа. (: А вот функция MID$ выделит определённое количество символов из заданной строковой переменной с определённой позиции - C$=MID$(X$, 4, 3) - в строковую переменную занесутся три символа из переменной X$, начиная с четвёртого символа. Понятно? Я рассказал весьма поверхностно, так что придётся Вам потренироваться с этими функциями, чтобы освоить их.

          Итак, мы научились делать самые простейшие программки. Потренируйтесь - посоздавайте пару (можете больше, конечно!) программ. Очевидно, чего-то не хватает, чего же? Ну конечно же - всё происходит только лишь в памяти компьютера. Происходит, а мы даже и не знаем, что именно. Так давайте же разучим ввод и вывод данных. Вперёд и с песней - в следующий раздел !

Работа с графикой в PascalABC

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

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

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

Подключение осуществляется в разделе описаний.
Формат подключения модуля GraphABC:Uses GraphABC;

Графический экран PascalABC (по умолчанию) содержит 640 точек по горизонтали и 400 точек по вертикали. Начало отсчета – левый верхний угол экрана. Ось x направлена вправо, а ось y –вниз. Координаты исчисляются в пикселях.

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

Управление графическим окном

Работа с графикой в PascalABC

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

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

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

Подключение осуществляется в разделе описаний.
Формат подключения модуля GraphABC:Uses GraphABC;

Графический экран PascalABC (по умолчанию) содержит 640 точек по горизонтали и 400 точек по вертикали. Начало отсчета – левый верхний угол экрана. Ось x направлена вправо, а ось y –вниз. Координаты исчисляются в пикселях.

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

Процедуры рисования графических примитивов

Работа с графикой в PascalABC

Процедуры, используемые для работы с цветом

Работа с графикой в PascalABC

Процедуры для работы с текстом

Работа с графикой в PascalABC

Цвета в PascalABC

Работа с графикой в PascalABC

Пример графической программы, рисующей изображение дома:

Работа с графикой в PascalABC

Программа, рисующая фигурку:

Работа с графикой в PascalABC

Практическая работа за компьютером

Задание 1. Определите координаты и составьте программу, выводящую на экран рисунок дома и дерева.

Работа с графикой в PascalABC

Программа будет иметь вид:

Задание 2. Используя оператор цикла и введя переменную для пересчета координат по оси x, постройте “поселок”, состоящий из 5 домов. Внесите соответствующие дополнения и изменения в предыдущую программу.

Работа с графикой в PascalABC

Выберем в качестве параметра цикла целочисленную переменную X.
Для всех элементов нашего рисунка абсолютное значение координаты X заменим на относительное. Например, для стены дома процедура для рисования запишется следующим образом:


Пришло время разобраться с символами и строками.

Символьный тип данных: сhar

Все символы закодированы в таблице символов и именно с ее помощью и распознаются значения нажатых клавиш. Каждый символ занимает 1 байт памяти.

Для работы с символами нам достаточно двух функций: СHR и ORD.

CHR- определяет символ по коду. Пример: write(chr(65)); выведет букву А.

ORD-определяет код по символу. write(ord('A')); выведет 65 (номер буквы А в таблице)

v ar
c:char;
i:integer;
begin
writeln('введите число');
read(i);
writeln(chr(i));
writeln('введите букву');
read(c);
writeln(ord(c));
end.

Строка — это последовательность символов. Количество символов в строке называется ее длиной. Длина строки может находиться в диапазоне от 0 до 255.

Описываем строку с явным или неявным заданием ее длины, вводим и выводим как обычно. Для работы со строками будем использовать 4 функции и 4 процедуры.

program zz1;
var r, i :integer; // задаем переменные целого типа
begin
for i:=1 to 10 do // организуем цикл, в котором переберем все числа от единицы до десяти
begin
r:=i * i; // вычисляем квадрат очередного числа, умножая его на себя
write(' ', r); // выводим ответ в строчку через пробел
end;
end.

Как написать хороший ответ? Как написать хороший ответ?

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

Мореплаватель — имя существительное, употребляется в мужском роде. К нему может быть несколько синонимов.
1. Моряк. Старый моряк смотрел вдаль, думая о предстоящем опасном путешествии;
2. Аргонавт. На аргонавте были старые потертые штаны, а его рубашка пропиталась запахом моря и соли;
3. Мореход. Опытный мореход знал, что на этом месте погибло уже много кораблей, ведь под водой скрывались острые скалы;
4. Морской волк. Старый морской волк был рад, ведь ему предстояло отчалить в долгое плавание.

Читайте также: