МЕТОДИЧЕСКОЕ ПОСОБИЕ Язык программирования Паскаль


ТЕОРЕТИЧЕСКИЕ ВЕДОМОСТИ

1.1 Классификация языков программирования

 

Цель занятия: дать понятие о программе, классификацию языков программирования, понятие системы программирования, понятие об интерпретации и компиляцию.

теоретические сведения

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

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

Алгоритмические языки описания построенных алгоритмов, предназначенных для выполнения компьютерами, называются языками программирования.

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

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

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

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

— языка низкого уровня;

— языка высокого уровня.

К языкам низкого уровня принадлежат языка ассемблера (от англ. To assemble — составлять, компоновать). В языках такого уровня используются символьные обозначения команд, которые легко понять и запомнить. Вместо последовательностей двоичных кодов команд записываются их символьные обозначения, а вместо двоичных адресов данных, которые используются во время выполнения программы, — символьные имена этих данных. Иногда язык ассемблера называют мнемокодах или Автокоды.

 

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

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

Транслятор — это программа, предназначенная для перевода текста программы с одного языка программирования на другой.Процесс перекладывания называется трансляцией.

Различают два типа трансляторов:

— компиляторы;

— интерпретаторы.

Компилятор — это программа, предназначенная для перевода в машинные коды программы, написанной на языке высокого уровня.Процесс такого перекладывания называется компиляцией.

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

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

Интерпретатор — это программа, предназначенная для трансляции и выполнения исходной программы по командам (в отличие от транслятора, который этот процесс выполняет в целом).Такой процесс называется интерпретацией.

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

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

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

1.2 Алфавит языка программирования Паскаль

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

Любой язык программирования характеризуется тремя основными составляющими:

алфавит, синтаксис и семантика.

Совокупность символов, которые разрешается использовать при построении описания программ на языке программирования, называют алфавитом этого языка.

Совокупность правил (описания) построения указаний алгоритмов некоторой языком программирования называют синтаксисом языка программирования.

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

Символы языка — это основные неразделимы знаки, с помощью которых описываются программы и данные.

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

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

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

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

Алфавит и словарь языка.

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

В качестве букв используют большие и малые буквы латинского алфавита:

abcdefghijklmnopqrstu vwxyzi _ (знак подчеркивания) ABCDEFGHIJKLMNOPQRSTU VWXYZ

 

В качестве десятичных цифр: 1 2 3 4 5 6 7 8 9 0.

Шестнадцатеричные цифры строятся из десятичных цифр и букв от А до F (или от a до f).

При написании программ применяются специальные символы:

+ плюс

* Звездочка (знак умножение)

= равна

<меньше

$ Знак денежной единицы () круглые скобки

. точка

: двоеточие

«апостроф

@ Коммерческое а

минус

/ Знак деления

> больше

# номер

[] Квадратные скобки

{} Фигурные скобки

, кома

; точка с запятой

^ Тильда пробел.

 

Комбинации специальных символов могут образовывать составные символы:

= Присваивания

.. диапазон значений (..) альтернатива []

> = Больше или равна.

<> Не равно

(*) Альтернатива {}

<= Меньше или равно

 

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

Зарезервированные слова является составной частью языка, имеют фиксированное написания и навсегда определенный смысл.Например: begin, else, Junction, goto, end, program и т.д.

Стандартные слова предназначены для заранее определенных разработчиком языка типов данных, констант, процедур и функций (например, sin, cos, Pi).Зарезервирован идентификатор можно переопределить, но это может привести к ошибке, поэтому лучше этого не делать.

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

1. Идентификатор начинается только с буквы или знака подчеркивания.

2. Идентификатор может состоять из букв, цифр и знака подчеркивания.

3. Между двумя идентификаторами должен быть хотя бы один разделительный знак.

4. Максимальная длина идентификатора 127 символов, но значимыми являются только 63 символа.

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

Правила оформления программ (пунктуации):

1. Точка с запятой не ставится после begin и перед end, потому что эти слова являются операторных скобками, а не операторами.

2. Точка с запятой разделяет операторы. Ее отсутствие между операторами вызывает ошибку компиляции. Наличие между операторами нескольких точек с запятой не является ошибкой, так как компилятор воспринимает их как признак наличия пустых операторов. 3. При использовании вложенных структур может возникнуть ситуация:

end;

end;

end

Точку с запятой можно ставить как после каждого, так и после последнего end.А в конце программы точка с запятой вообще не ставится.

4.В операторах цикла точка с запятой не ставится после while, repeat, do и перед

until.

5.В условных операторах точка с запятой не ставится после then и перед else.

 

1.3 Величие ини.Типы данных языка Паскаль

В своей работе программист всегда сталкивается с таким понятием, как величина. Что же такое величина? С точки зрения программирования величины — это данные, которые обрабатываются программами.

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

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

Для определения констант служит зарезервированное слово const. Формат описания.

Const <идентификатор> = <значение константы>;

пример:

Const Max = 1000; Vxod = ‘сегмент 5’;

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

Например:

 

Таблица 1 — Зарезеововани константы

идентификатор Тип значение описание
True Boolen True истина
False Boolen False ошибочность
Maxint integer 32767 максимальное целое

 

Переменные, в отличие от констант, могут изменять свои значения в процессе выполнения программы.Каждая переменная и константа принадлежат к определенному типу данных. Тип констант определяется компилятором автоматически. Тип переменных обязательно указывается перед тем, как их использовать. Для описания переменных предназначено зарезервированное слово var. Формат описания:

Var <идентификатор>: <тип данных>;

пример:

Var Sum1, Sum2: real;

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

Скалярные типы в свою очередь подразделяются на стандартные и типы пользователя.Стандартные типы предлагаются пользователям разработчиками системы Turbo Pascal. Типы пользователя — разрабатываются самым программистом.

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

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

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

Таблица 2 — целочисленные типы данных

Тип диапазон Необходима память (байт)
Byte 0 … 255 1
Shortint -128 … 127 1
Integer -32768 … 32767 2
Word 0 … 65535 2
Longint -2147483648 …

2147483647

4

 

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

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

Если десятичная точка отсутствует, число считается целым. Перед числом может находиться знак «+» или «-». Если знак отсутствует, по умолчанию число считается положительным. Действительные десятичные числа в формате с плавающей точкой представляются в следующем (экспоненциальному) виде:

MЕ + р,

где т — мантисса (целое или дробное число с фиксированной десятичной точкой), Е — означает «десять в степени», г. — порядок (целое число).

Вообще мантисса должна быть нормализованной, то есть представленной в виде числа, принадлежит диапазону от 0 до 1 (это означает, что точка всегда находится перед первой цифрой числа). Однако можно записать мантиссу в виде любого дробного числа с фиксированной точкой.Нормализация при этом выполняется системой автоматически. пример:

 

Таблица 3 Нормализация мантиссы

Число v формате с плавающей точкой значение числа
0.4500Е + 02 0.45 * 10 2 = 45
—2.600Е05 —2.6 * 10 мая = -260000
+ 0.45670Е-02 0.4567 * 10 -2 = 0.004567

 

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

 

Таблица 4 — действительные типы данных

Тип диапазон значений Мантисса (количество цифр) необходима память
Real 2.9 * 10Е-39 .. 1.7 * 10Е38 11-12 6

 

Буквенный (символьный) тип может принимать значения кодовой таблицы компьютера.Символьной переменной в памяти выделяется один байт, поэтому она не может сохранить только один символ ASCII таблицы.

Логическое тип подается двумя значениями: True (истина) или False (ложь).

Этот тип применяется в логических выражениях и выражениях отношения.

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

Переменные и константы всех типов используются в выражениях.

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

1.4 Операции в языке Паскаль

В языке Паскаль есть такие операции: арифметические; отношение (сравнение) логичны.

Операции могут быть унарными и бинарными.

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

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

 

Таблица 5 — арифметические операции

 

вычитание целый целый
    действительный действительный
* умножения целый целый
    действительный действительный
/ Диленные целый действительный
    действительный действительный
Div деления нацело целый целый
Mod Остаток от деления целый целый
унарные
+ сохранение целый целый
    действительный действительный
возражения

знака

целый целый
    действительный действительный

 

Операции отношения выполняют сравнение двух операндов и определяют значение выражения является истинным или ложным.Результат всегда логическое тип одного из двух значений: True (истина) или False (ложь). В следующей таблице представлены операции отношения в языке Паскаль.

Таблица 6 — Операции отношения

операция Название выражение результат
= равна А = В True, если А равно В
<> Не равно А <> В True, если А не равно
> более А> В True, если А больше В
< меньше А <В True, если А меньше В
> = более или

равна

А> = В True, если А больше или

равна В

<= меньше или

равна

А <= В True, если А меньше или

равна В

 

Результатом выполнения логического (логическое) выражения является логическое значение True или False.Список логических операций приведен в следующей таблице:

 

Таблица 7 — Логические операции

операция действие выражение А В результат
not логическое отрицание not A True   False
False   True
and логическое

«И»

A and В True True True
True False False
False True False
False False False
or логическое

«ИЛИ»

A or В True True True
True False True
False True True
False False False

 

Выполнение каждой операции происходит с учетом его приоритета.Значение приоритетов указанные в следующей таблице:

Таблица 8 — Приоритет операций

операция приоритет вид операции
Not, унарные «-» и

«+»

первый (высший) унарная операция
* /, Div, mod, and второй операции типа
+, -, or третий операции типа
=, <> <>, <=,> = четвертый операции

1.5 Функции в языке Паскаль

 

Арифметические выражения в качестве операндов могут содержать имена функций. Понятием функции будет рассматриваться позже в курсе программирования, но стандартные функции (cos, sin, х 2 и другие) и их использование в курсе информатики отличается только правилами записи (синтаксиса).Так, в отличие от математики, в программировании аргумент функции обязательно берется в круглые скобки. Ниже представлен список этих функций, где буквами X и I обозначены соответственно: X — целые и действительные типы, и — только цели.

Abs (X) — вычисление абсолютного значения (модуля) X. Тип результата совпадает с типом параметра.

АrсТап (Х) — вычисление угла, тангенс которого равен X, значение угла представлены в радианах и может находиться в диапазоне от -π / 2 до π / 2.Для преобразования значения угла с радианной меры в градусную необходимо значение угла умножить на число 180 / π.Результат имеет действительный тип.

Cos (X) — вычисление косинуса X, параметр задает значение угла в радианах.Для преобразования значения угла с радианной меры в градусную следует значение угла умножить на число 180 / π.Результат имеет действительный тип.

Ехр (х) — вычисление значения экспоненты аргумента х).Результат всегда

действительный тип.

Frac (X) — нахождение дробной части X. Результат имеет действительный тип.

Int (X) — нахождение целой части X (дробная часть отбрасывается).Результат имеет действительный тип.

Ln (x) — исчисляется натуральный логарифм аргумента.Результат имеет действительный тип. С помощью функций Ехр и Lп можно вычислить произвольный степень числа следующим образом: a b = Exp (b * Ln (a)).

Pi — возвращает значение числа π (3.1415926).

Sin (X) — вычисление синуса X. Параметр задает значение угла в радианах.Для преобразования значения угла с радианной меры в градусную следует значение угла умножить на число 180 / π.Результат имеет действительный тип.

Sqr (X) — возведения в квадрат значениях.Тип результата совпадает с типом параметра.

Sqrt (X) — вычисление квадратного корня из Х. Тип результата действителен.

Random — генерирует значение случайного числа из диапазона от 0 до 0.99.Тип результата действителен.

Random (P) — генерирует значение случайного числа из диапазона от 0-до Р-1.Тип результата цел. Чтобы случайные числа были «более случайными», необходимо периодически менять базу генерации. Для этого используется процедура Randomize, что позволяет при каждом новом запуске программы получать различные случайные числа.

1.6 Структура программы на языке Паскаль

 

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

<имя переменной> = <выражение>;

Выполняется эта операция так: вычисляется выражение, находится справа от знака присваивания, и полученное значение заменяет текущее значение переменной, имя которой стоит слева от знака присваивания.

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

 

на языке Паскаль будет иметь настурний вид:

 

(Ab) / (2 * c + (a / (c + (b-5) / (cb)))).

Обратите внимание на то, что во всех выражениях нужно обязательно ставить знаки умножения, а имена переменных — это идентификаторы, и поэтому они должны соответствовать ранее указанным правилам (так, греческая буква р, используется в математике, заменяется в выше приведенном примере идентификатором beta).

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

Например, если переменные X и Y описаны следующим образом:то оператору Y = Х + 2; синтаксически не имеет ошибок, хотя типы переменных и не совпадают. Преобразование типов (из целого в настоящий) в этом случае выполняется автоматически.

В то же время оператор X = 2.78; будет ошибочным, так как автоматическое преобразование вещественных типов в целях не выполняется.Обратите внимание, что константа 12.0 с точки зрения компилятора будет также действительной, хотя дробная часть и равна нулю, так как константа содержит десятичную точку.

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

5 + ‘F’ является ошибочным.

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

Chr (I) — превращает целый тип в буквенный, то есть возвращает символ стандартного кода таблицы ASCII с номером, равным значению и. Если значение больше 255, возникает программное прерывание.

Например: Chr (lOS), результат = ‘и’.

Ord (S) — для значений буквенного типа S Функция Ord возвращает их номер согласно таблице ASCII. Буквенный тип превращается в целый.

Например: Ord ( ‘A’); результат = 65.

Round (X) — возвращает значение X, округленное до ближайшего целого числа.Результат имеет целый тип, то есть действительно переменная превращается в целую. Например: Round (5.6) Результат = 6.

Тrипс (X) — возвращает ближайшее целое число, которое меньше или равно X, если

Х> = 0, и больше или равно X, если X <0.Результат относится к целому типу.

Исходя из этого, следующий оператор X = Y / X; будет ошибочным (X, как описано выше, имеет целый, a Y — настоящий тип), а оператор X = round (Y / X); ошибок нет.

Обратите еще внимание на то, что операции DIV и.MOD выполняются только с целыми типами данных и попытка использовать в качестве операторов для них действительны данные приводит к ошибке.Например, ошибочными будут выражения:

1.5 div 3 (один из операндов — действительное число)

5 mod Y (переменная Y имеет действительный тип)

4/1 div 2 (результатом операции деления 4/1 будет действительное число 4.0)

Ввод данных — это передача информации от внешнего носителя в оперативную память для обработки.

Вывод — это обратный процесс, когда данные передаются после обработки из оперативной памяти на внешний носитель.

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

  • Процедура чтения Read обеспечивает ввод числовых данных, символов, строк и т.д. для последующей их обработки. Формат ввода:

Read (x1, x2, … х n)

где х1, х2, … хп — переменные допустимых типов данных.

Значение xl, x2, .. х n набираются минимум через один пробел на клавиатуре, при этом они отображаются на экране для контроля правильности ввода. После набора данных одной процедуры Read нажимается клавиша Enter.Значение введенных данных должны строго соответствовать типам этих данных, иначе компилятор выводит на экран сообщение об ошибке. Если в программе есть несколько процедур Read, данные для них вводятся потоком, то есть после считывания данных для одной процедуры Read данные для следующей процедуры Read набираются в той же строке до окончания строки.

  • Процедура чтения Readln аналогична процедуре Read, отличие заключается в том, что после считывания последнего в списке значения для одной процедуры Readln данные для следующей процедуры Readln будут считываться с начала новой строки.
  • Процедура записи Write делает вывод числовых данных, символов, строк и логическое значений на экран монитора.

Формат вывода:

write (Y1, Y2, …Yn) — вывод на монитор; где Y1, Y2 …Yn — данные, выводимые.

Процедура записи Writeln аналогична процедуре Write, но после вывода последнего в списке значения для текущей процедуры Writeln происходит перемещение курсора в начало следующей строки.Процедура Writeln, записанная без параметров, выполняет только перемещение курсора в начало следующей строки.Например: Writeln ( ‘Y1 =’, Y1)

В процедурах вывода Write и Writeln есть возможность записи выражения, определяет ширину поля для вывода.В примерах, которые подаются дальше, используются следующие условные обозначения: I — идентификатор, определяющий целое число, R — идентификатор, определяющий действительное число, г, q — целые константы, определяющие длину поля вывода и количество цифр после десятичной точки.

1.Вывод десятичного значения целой величины I в крайнюю правую позицию поля шириной г. (пробелы перед числом указаны знаком «_»).

 

Таблица 9 — Вывод целых величин

значение И выражение результат
134 write (I 6)               134
1 write (I: 10);               1
312 write (I + I: 7);               624

Вывод в крайнюю правую позицию поля шириной p значение действительной величины

R в формате с фиксированной точкой, причем после десятичной точки выводится q цифр (0

<= Q <= 24), представляющие дробную часть числа.Если q = 0, ни дробная часть, ни десятичная точка не выводятся.Если q> 24, то при выводе используется формат с плавающей точкой.Без использования форматирования число также выводится в формате с плавающей точкой.

 

Таблица 10 — Вывод действительных величин

значение R выражение результат
511.04 write (R: 8: 4); 511.0400
-46.78 write (R: 7: 2)               -46.78
-46.78 write (R: 9: 4);               -46.7800

 

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

Синтаксически программа состоит из необязательного заголовка и программного

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

Блок, не входит в состав любого другого блока, называется глобальным.Блоки, которые находятся в глобальном блоке, называются локальными.Глобальный блок — это основная программа, он присутствует обязательно. Локальные блоки — это процедуры и функции (изучаться позже), их наличие не обязательно. Объекты программы (переменные, константы и т.д.) соответственно называют глобальными и локальными. Область действия объектов

— блок, где они описаны, и все вложенные в него блоки.

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

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

Таким образом структура программы выглядит следующим образом:

Program <имя>;

Uses <имья1, имья2>; {список библиотечных модулей} Const <идентификатор> = <значение>;

Туре <идентификатор> = <описание типа>; Var <идентификатор>: <тип>;

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

Begin

 

End.

<Операторы>;

Любой раздел, кроме раздела операторов, может отсутствовать. Раздел uses всегда находится после заголовка программы.Остальные разделы могут встречаться в программе любое количество раз в произвольном порядке. Главное, чтобы все описания объектов программы были сделаны до того, как они будут использованы. Раздел uses состоит из зарезервированного слова Uses и списка имен стандартных библиотечных модулей и библиотечных модулей пользователя.

Формат описания:

Uses <имя 1>, <имя 2> … <имя n>;

Библиотечные модули создаются заранее и содержат часто используемые программы. Они могут быть созданы самим пользователем.

Достаточно часто используются некоторые из стандартных модулей, созданных разработчиками языка Паскаль: Crt и Graph:

Crt — содержит средства управления монитором в текстовом режиме, клавиатурой, а также звуковые эффекты.

Graph — содержит пакет графических средств, обеспечивающих эффективную работу с экраном монитора в графическом режиме.

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

В программе, которая записана на языке Паскаль, глава операторов является основным.Он начинается зарезервированным словом Begin (начало), далее располагаются операторы языка, отделенные друг от друга точкой с запятой.Завершает раздел зарезервированное слово End (конец) и точка

В любом месте программы могут использоваться комментарии. Это текст, с помощью которого программист записывает некоторые пояснения для пользователей программы. Текст комментария ограничивается символами {} или (*) и может содержать комбинации латинских и русских букв, цифр и других символов.В ограничителях (*) пробелы между скобкой и звездочкой запрещены, и, кроме того, в тексте не должны находиться знаки ограничителей, из которых комментарий начинается.Ограничений на длину комментария нет.

2.ЛАБОРАТОРНЫЕ РАБОТЫ Лабораторная работа № 1 Программирование линейных алгоритмов

Цель занятия: научиться решать простые задачи.

 

Пример № 1

Найти сумму, разность, произведение и частное от деления чисел a и b.  Необходимые переменные: a — первый номер; b — второе число. Пользователь вводит значения a и b. Результаты расчетов вывести на экран.

Программа имеет следующий вид:

program Task_2; var a, b: integer; begin

 

 

 

 

 

end.

writeln ( ‘Введите a и b:’); readln (a, b)

writeln (a, ‘+’, b, ‘=’, a + b)

writeln (a, ‘-‘, b, ‘=’, ab)

writeln (a, ‘*’, b, ‘=’, a * b)

writeln (a, ‘/’, b, ‘=’, a / b)

 

Пример № 2

Определить, какую плату получит на фирме совместитель за выполненную работу, если ему начислено 5 грн., А налог составляет 20%.

Необходимые переменные: S — сумма начислений совместителя; Р — реальная плата, которую он получит в кассе (по условию она составляет 80% от начислений).

Программа имеет следующий вид:

program Task_2; var P, S: real; begin

end.

write ( ‘Введите сумму начислений работнику:’); readln (S) P = S * 0.8;

writeln ( ‘Плата совместителя составляет:’, P) readln;

Ход работы

  • 1. Выбрать задачу по варианта.

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

3. Написать программу реализации задачи.

4. Выполнить компиляцию и запустить программу на выполнение в среде PascalABCNET.

6. Составить отчет о проделанной работе согласно образцу, представленный в приложении А.

ВАРИАНТЫ ЗАДАЧ

 

1. Цветочная клумба имеет форму круга. Вычислить ее периметр L = 2πR и площадь S = πR 2 по заданному радиусом.

2. За первый год производительность труда на предприятии выросла на p 1%, за второй и третий — соответственно на p 2 и p 3%.Найти среднегодовой прирост производительности (в процентах).

3. Вычислить длину окружности и площадь круга по заданному диаметру. Длина окружности L = πD, площадь S = πD 2/2.

4. Участок леса имеет форму равносторонней трапеции. Вычислить ее периметр и площадь по заданным сторонами.

5. Ресторан закупает ежедневно масло m 1 кг по 48,50 грн за килограмм, сметану m 2 кг по 30,40 грн, сливки m 3 кг по 25,80грн.Определить суммы, необходимые для покупки отдельных продуктов, и общую сумму. Данные вводят с клавиатуры.

6. Сколько секунд должны сутки, неделю, год?

7. Вычислить кинетическую Е = mv 2/2 и потенциальную Р = mgh энергии тела заданной массы m, которое движется на высоте h со скоростью v.

8. Цены на два вида товаров выросли на р процентов. Вывести старые и новые цены.

9. Вычислить площадь поверхности S = 4πr 2 и объем V = 4πr 3/3 сферы по заданному радиусу r.

10. Скорость света 299792 км / с. какое расстояние преодолевает свет за час, сутки?

11. Ввести урожайность трех сортов пшеницы (35, 40, 45 т / га) и площади трех соответствующих полей (га). Сколько собрали пшеницы с каждого поля и из трех полей вместе?

12. Радиус Луны 1740 км. Вычислить площадь поверхности S = 4πr 2 и объем планеты

V = 4πr 3/3.

13.Составить программу, вычисляет среднее арифметическое трех чисел.

14. Вычислить объем и площадь боковой поверхности куба, если известно ребро.

15. Ввести производительности работы трех труб, которые наполняют бассейн, и время их работы.Сколько набрано в бассейне?

16. Какую площадь и периметр будет квадрат, описанный вокруг круга заданной площади S.

17. Тело падает с ускорением g. Определить пройденный телом путь h = gt 2/2 после

первой и второй секунд падения.

18. Составить программу, переводит в километры расстояние, заданную в милях. 19.Телефонные разговоры с тремя населенными пунктами стоят с 1, с 2, с 3 коп / мин.

Разговоры продолжались t 1, t 2, t 3 х в соответственно.Какую сумму начислит компьютер к оплате за

каждый и все разговоры?

20. Вычислить площадь боковой поверхности S = 2πrh и объем V = πr 2 h бочки по заданной высотой h и радиусом основания r.

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

22. В такси одновременно сели три пассажира. Когда вышел первый пассажир, на счетчике было p 1 гривен; когда вышел второй — p 2 гривен.Сколько должен был заплатить каждый пассажир, если в конце поездки счетчик показал p 3 гривен?Плата за посадку составляет p 0 гривен.

23. Вычислить площадь боковой поверхности S = d 2/2 квадрата, если известна его диагональ

d.

24. Вычислить площадь боковой поверхности S = πrl и объем V = πr 2 h / 3 конуса по заданной высотой h, образующей l и радиусом основания r.

25. Поезд ехал t 1 ч со скоростью v 1 км / ч, t 2 ч со скоростью v 2 и t 3 ч со скоростью v 3.Определить пройденные пути с разной скоростью и весь путь.

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

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

28.Вычислить силу тока в электрической цепи по закону Ома. Значения напряжения и сопротивления вводит пользователь.

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

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

Лабораторная работа № 2 Программирование разветвленных алгоритмов в языке Pascal

Цель занятия: дать понятие о структурных операторы, указание ветвления (полное и сокращенное формы) и понятия о простых и составлены условия, научить составлять алгоритмы с использованием команды ветвления и записывать их на языке программирования.

теоретические сведения

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

— составлены;

— условные;

— повтора.

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

Формат описания:

begin

 

 

end;

<Оператор>;

<Оператор>;

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

Условные операторы — обеспечивают исполнение или неисполнение некоторого оператора, группы операторов или блока в зависимости от заданных условий.Используются условные операторы в таких алгоритмах, где возможны несколько вариантов решения задачи в зависимости от начальных условий. В языке Паскаль возможно использование двух условных операторов: if и case.

Условный оператор if

Условный оператор (команда ветвления) является одним из самых распространенных средств, изменяющих линейный порядок выполнения операторов программы.Он может принимать следующие форм:

 

 

 

действие 2

   

 

Рисунок 1 — Схема алгоритма конструкции IF — ELSE.

 

Рисунок 2 — Схема алгоритма конструкции с одиночным IF.

 

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

Один оператор if может входить в состав другого.В этом случае говорят о вложенности операторов. При вложенности операторов каждое else соответствует then, что ему предшествует.

Условие — выражение логическое типа, то есть это предложение, на которое можно ответить «да» или «нет».Условие может быть простой или составной.Составленные условия образуются из простых с помощью логических операций and, or, not, причем очевидно, что служебное слово or используется, если необходимо выполнение хотя бы одного условия, а служебное слово and — если необходимо одновременное выполнение всех условий.

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

(мой день рождения или 1 января или 14 февраля), я получу подарок.При этом очевидно, что не обязательно рождаться на Новый год или на День Святого Валентина.

Служебное слово not выполняет отрицание условия, то есть, если она была истинной, то становится ошибочной и, наоборот, если была ошибочной — становится истинной.Например, если на улице не (на английском not) идет дождь, то я оставлю дома зонтик.В этом случае

«Идет дождь» — условие, которое может быть истинной или ложной в зависимости от погоды на улице. А слово не возражает это условие, то есть делает ее ошибочной, если дождь действительно идет, и наоборот — истинной, если дождя нет.

При написании программ на языке Паскаль в записи условий могут использоваться все возможные операции отношения (равно, не равно, меньше, больше, ни больше, ни меньше т.п.). Результат выражения имеет логическое тип. Например:

(х> 4) and (x < 10)

При х = 5 это условие будет истинным, а при х = 25 — ошибочно.

Условный оператор case

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

Формат описания:

case <выражение-селектор> of

<список констант вибору1 > <Оператор 1 >;

<список констант выбора 2 > <Оператор 2>;

. . . .

<список констант выбора n > <Оператор n > Else <оператор >

end;

Оператор case работает следующим образом.Сначала вычисляется значение виразу- селектора, затем обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Если ни одна из констант не равна текущему значению селектора, выполняется оператор, находящийся по слову else.Если слово else отсутствует, активизируется оператор, находящийся по слову end, то есть первый оператор чертой действия case.

Селектор должен относиться к одному из перечислительная типов (целого, логическое или буквенного). Действительные и строчные типы использовать в качестве селектора запрещено. Список констант выбора состоит из произвольного количества значений или диапазонов, отделенных друг от друга запятыми. Границы диапазона записываются двумя константами через сложенный символ диапазона «..».Тип констант в любом случае должен совпадать с типом селектора.

Пример № 1

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

Программа имеет следующий вид:

program Task1; var pass: integer; begin

 

 

 

end.

writeln ( ‘Введите пароль:’); readln (pass)

if pass = 5 then

writeln ( ‘Пароль правильный’);

 

Пример № 2

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

Пользователь имеет вводить два числа с клавиатуры, а программа выводить сообщений о том, какое из чисел является большим. Для решения задачи необходимо использовать конструкцию IF — ELSE.

Программа имеет следующий вид:

Пример № 3

Вывести значение функции если y = x 2 + 1 в промежутках x > 1 и х <5; при х вне промежутком — вывести сообщение «функция неопределенная «.

Программа имеет следующий вид:

Пример № 4

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

Программа имеет следующий вид:

program Task4; var day: integer; begin

 

 

 

 

 

 

end.

writeln ( ‘Введите номер дня недели (1..7):’); readln (day)

case day of

1..5: writeln ( ‘Рабочий’);

6,7: writeln ( ‘Выходной’);

else writeln ( ‘Неверный день недели’); end;

ход работы

1. Выбрать задачу по варианта.

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

3. Написать программу реализации задачи.

4. Выполнить компиляцию и запустить программу на выполнение в среде PascalABCNET.

6. Составить отчет о проделанной работе согласно образцу, представленный в приложении А.

ВАРИАНТЫ ЗАДАЧ

 

1. Вывести значение функции если y = 5 x 2 + 3 в промежутках x > 5 и х <17; при х вне промежутком вывести сообщение «Функция неопределенная «.

2. Составьте программу поиска наибольших из трех величин a, b, c.

3. Вывести значение функции если y = 4 x 3 + 1 в промежутках x > 3 и х <7; при х вне промежутком вывести сообщение «Функция неопределенная «.

4. Вывести значение функции если y = sin (x 3) 1 в промежутках 11> х > 1; при х вне

промежутком вывести сообщение «Функция не определена».

5. Вывести значение функции если y = sqrt (x) + 1 / x в промежутках х > 5 и х <9; при х вне промежутком вывести сообщение «Функция неопределенная «.

6. Вывести значение функции если y = sqrt (x) в промежутках х <7 и х> 0; при х вне промежутком вывести сообщение «Функция неопределенная «.

7. Вывести значение функции если y = x 3 + 1 в промежутках 1 <= х и х <0; при х вне

промежутком вывести сообщение «Функция не определена».

8. Вывести значение функции если y = 2 х х / 4 в промежутках 1 <= х и х <0; при х вне промежутком вывести сообщение «Функция неопределенная «.

9. Вывести значение функции если y = 2 х х / 6 в промежутках 1 <= х и х <0; при х вне

промежутком вывести сообщение «Функция не определена».

10. Написать программу, которая по номеру дня недели выводит название дня недели, при ошибке при вводе выводит ***.

11. Написать программу, которая запрашивает у пользователя номер месяца и затем выводит соответствующее название времени года. Программа должна проверять правильность введенных пользователем данных и, если они неверные (номер больше 12), предоставлять сообщение об ошибке.

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

13. Написать программу, которая проверяет, является ли введенное пользователем целое число четным и предоставлять соответствующее сообщения.

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

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

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

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

18. Написать программу, которая проверяет, является ли год високосным.

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

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

21. написать программу вычисления стоимости товара с учетом скидки, если стоимость товара меньше 500 гр.-% скидки 10%, если стоимость товара больше 500гр. но меньше 1000гр.-% скидки 15%, если стоимость товара больше 1000гр.-% скидки 25% (стоимость товара вводится с клавиатуры).

22. Написать программу, которая проверяет является число положительным.

23. Написать программу проверки знания даты начала Второй мировой войны. В случае неправильного ответа пользователя, программа должна предоставлять правильную ответ.

24. Написать программу, которая запрашивает у пользователя номер оценивает и выводит одно из сообщений: «Единица», «Двойка», «Тройка», «Четверка», «Пятерка».

25. Написать программу, которая вычисляет оптимальный вес пользователя, сравнивает его с реальным и предоставляет рекомендации о необходимости коррекции веса (худеть или поправляться). Оптимальный вес вычисляется по формуле: Рост (см) -100.

26. Написать программу, определяет налог с заработной платы, начисленная сумма которой считывается с клавиатуры, при условии таких ставок налогов до 300 грн. — 9%, до 700 грн. — 12%, в 1000 — 15%, более 1000 — 20%.

27. Написать программу для определения стоимости разговора по телефону с учетом скидки 20%, которая предоставляется по субботам и воскресеньям.

28. Написать программу, которая проверяет, все ли четыре предварительно считаны с клавиатуры числа есть положительными.

29. Написать программу, которая находит наименьшее значение пяти чисел, вводимых пользователем с клавиатуры.

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

Лабораторная работа № 3 Циклы в языке Pascal

 

Цель занятия: дать понятие об указании повторения и ее использование при решении задач, о типах циклов и их оформление на языке программирования Паскаль и языком блок-схем.

теоретические сведения

В языке программирования Паскаль существует три типа циклов: for, repeat и while.Если количество повторений известна заранее, используется оператор for, если количество повторений неизвестна, применяются операторы repeat или while.

Оператор повторения for

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

1. for <параметр цикла> = <S1> to <S2> do begin

<Серия>;

end;

2. for <параметр цикла> = <S1> downto <S2> do begin

<Серия>;

end;

где S1 и S2 — выражения, определяющие начальное и конечное значение параметра цикла;

for .. do — заголовок цикла; <Серия> — тело цикла.

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

Параметр цикла, его начальное и конечное значения должны принадлежать к одному типу данных. При этом возможно использование любого скалярного типа: целого (integer, byte, word, longint) логическое (boolean) символьного (char).Действительный тип данных использовать запрещено. Значение параметра цикла последовательно увеличивается при for … to или уменьшается при for … downto на единицу при каждом повторе.Количество повторов тела цикла в операторе for можно определить по таблице:

Таблица 11 — Повтори опеараторив цикла

оператор S1 <S2 S1 = S2 S1> S2
for … to S2-S1 + 1 раз 1 раз He выполняется
for … downto He выполняется 1 раз S1-S2 + 1 раз

В операторе for после do может находиться составной оператор, в теле которого запрещены операторы, изменяющие значение параметра цикла.После нормального завершения цикла значение параметра цикла равен конечному значению. Цикл может не исполниться вовсе (см. Табл.), Но никогда не может «зациклиться», в отличие от следующих двух операторов повторения.

Оператор повторения repeat

Этот оператор цикла состоит из заголовка (repeat), тела и условия окончания

(Until).

Формат описания:

repeat

<серия> until <условие>;

Условие — выражение логическое типа. Об условиях мы уже говорили в теме «Команда ветвления», и все особенности их применения и оформления в этой команде ничем не отличаются от предыдущего случая. В этом цикле сначала выполняется серия (тело цикла), а затем проверяется условие выхода из цикла. Именно поэтому эта команда повторения иначе называется циклом с постусловием.Если условие выхода из цикла заблуждение (false), цикл активизируется еще раз, если результат истинный (true), происходит выход из цикла.

Такой оператор повторения имеет следующие характерные черты:

• используется когда не известна заранее количество повторений;

• тело цикла выполняется хотя бы один раз;

• т Ило цикла выполняется, пока условие ошибочная (False);

• в теле может находиться любая количество операторов без операторных скобок

(Begin … end)

• по крайней мере один оператор в теле цикла должен изменять значение условия, иначе цикл будет выполняться бесконечно.

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

 

Оператор повторения while

Оператор while аналогичный оператору repeat, но проверка условия выполнения тела цикла выполняется в самом начале оператора, поэтому цикл иначе называется циклом с предусловия.

Формат описания: while <условие> do

begin

<Серия>;

end;

Условие — логическое выражение, а серия — простой или составлен оператор. перед

каждым выполнением тела цикла вычисляется значение выражения условия. Если результат есть истинным (true), тело цикла выполняется, а иначе происходит выход из цикла и переход к первому после while оператору.Если перед первым выполнением цикла значение выражения было ложным (false), то тело цикла вообще не выполняется и происходит переход на следующий оператор.

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

Пример № 1

Написать программу, находит сумму всех натуральных чисел от 1 до 100.

program Task1; var sum, i: integer; begin

sum: = 0;

for i: = 1 to 10 do sum = sum + i; writeln ( ‘sum = ‘, sum) readln;

end.

Пример № 2

Написать программу, которая проверяет правильность введение данных.Пользователь

вводит оценку в диапазоне от 2 до 5, программа выводит введено число на экран. Если число выходит за пределы указанного диапазона, программа выводит сообщение «Оценка неверна. Повторите ввод «.

program Task2; var mark: integer; begin

 

 

 

 

 

 

end.

repeat

writeln ( ‘Введите оценку (2..5):’); readln (mark)

if (mark <2) or (mark> 5) then

writeln ( ‘Оценка неверная.Повторите ввод ‘); until (mark> = 2) and (mark <= 5);

writeln ( ‘Вы ввели оценку «, mark)

 

Пример № 3

Написать программу, определяющую количество цифр в числе.  Пользователь вводит

натуральное число n, программа определяет количество цифр в введенном числе цифр и выводит результат на экран.

program Task3;

var n: longint; counter: integer; begin

 

 

 

 

 

 

 

 

 

end.

write ( ‘введите число:’); readln (n);

counter = 0; while n> 0 do

begin

counter = counter + 1; {подсчет количества цифр} n = n div 10; {отвержение последней цифры}

end;

writeln ( ‘количество цифр в заданном числе равна’, », counter) readln;

ход работы

1. Выбрать задачу по варианта.

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

3. Написать программу реализации задачи по использованию циклов с параметром, с предусловием и с постусловием.

4. Выполнить компиляцию и запустить программу на выполнение в среде PascalABCNET.

6. Составить отчет о проделанной работе согласно образцу, представленный в приложении А.

ВАРИАНТЫ ЗАДАЧ

 

1. Написать программу, которая выводит таблицу значений функции y = 3x 3 — 2x + 7 в диапазоне от -7 до +7, с шагом 0,5.

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

3. Написать программу, которая выводит на экран сообщение с текстом «Национальный авиационный университет» 10 раз.

4. Написать программу, которая выводит таблицу значений функции y = 2x 2 + 4x — 5 в

диапазоне от -5 до 5, с шагом 2.

5. Написать программу, которая выводит таблицу значений функции y = x 3 + 5x 2 — x + 4 в диапазоне от -3 до 7, с шагом 1.

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

диапазоне 1 … 10.

7. Написать программу, которая выводит таблицу плоскости круга, если радиус изменяется в диапазоне 4 … 10 с шагом 0,5.

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

диапазоне 1 … .10.

9. Написать программу, которая выводит таблицу значений функции y = -2.4x 2 + 5x — 3 в диапазоне от -2 до +2, с шагом 0,5.

10. Написать программу, которая вычисляет среднее арифметическое 5 дробных чисел, вводимых пользователем с клавиатуры и вычисляет их среднее арифметическое.

11. Написать программу, которая выводит таблицу значений функции y = x 4 + 2x 3 в диапазоне

от 3 до 7, с шагом 0,5.

12. Написать программу, которая выводит на экран таблицу стоимости апельсинов в диапазоне от 35 кг до 1 кг с шагом 2 кг.

13. Написать программу, которая находит сумму первых n натуральных чисел.

14. Написать программу, которая вычисляет среднее арифметическое чисел 10 введенных с клавиатуры дробных чисел.

15.Написать программу, которая выводит на экран таблицу умножения на 4.

16. Написать программу, которая выводит на экран таблицу стоимости яблок в диапазоне от 100 кг до 1 кг с шагом 100г.

17. Написать программу, которая выводит на экран таблицу значений функции у = х 3 4.

Диапазон изменение аргумента от -5 до 5, шаг приращения аргумента 1.5.

18. Написать программу, которая выводит на экран таблицу значений функции у = х 3 — 4 + х + 1.Диапазон изменение аргумента от -4 до 4, шаг приращения аргумента 0.5.

19. Написать программу, которая выводит на экран таблицу умножения на 8.

20. Написать программу, которая выводит на экран таблицу значений функции у = х 2 + х 3 + 7.Диапазон изменение аргумента от -5 до 17 шаг приращения аргумента 0.7.

21.Написать программу, которая выводит таблицу значений функции y = 1.7x 2 — 3x — 9 в

диапазоне от -5 до 5, с шагом 1.

22.Написать программу, которая выводит на экран ваш адрес 10 раз. 23.Написать программу, которая выводит на экран таблицу умножения на 5.

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

25. Написать программу, которая выводит на экран таблицу значений функции у = х 3 + х 2 + 1.

Диапазон изменение аргумента от -5 до 5, шаг приращения аргумента 1.5.

26. Написать программу, которая вычисляет среднее арифметическое чисел от 1 до 15 с диапазоном 2.

27.Написать программу, которая выводит таблицу значений функции y = -1.4x 2 + 5x 3 — 7 в

диапазоне от -3 до +5, с шагом 0,5.

28.Написать программу, которая выводит на экран таблицу умножения на 7. 29.Написать программу, которая выводит таблицу значений функции y = -1.9x 2 + 4x — 6 в

диапазоне от -1 до 5, с шагом 1.

30.Написать программу, которая выводит таблицу значений функции y = -5.8x 4 + 5x 3 — 3.7x в диапазоне от -3 до +5, с шагом 0,5.

Лабораторная работа № 4 Табличные величины

Цель занятия: дать понятие табличных величин и их описания на языке программирования.

Понятие линейных таблиц, введение элементов таблиц и вывод их на экран.

теоретические сведения

Понятие таблицы было введено программистами для запоминания и обработки больших наборов однотипных данных. Например, если мы хотим найти средний балл каждого студента группы по информатике за семестр, небходимо найти сумму очень большого количества оценок. Как хранить все эти оценки? Зарезервировать для этого 40 (а может и больше переменных)? Это очень неудобно. Вот здесь и понадобится такой структурированный тип данных, как таблица, или иначе — массив.

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

Таблица определяется именем (идентификатором) и количеством индексов (номеров), необходимые для определения местоположения требуемого элемента массива. Имя массива является единым для всех его элементов.

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

Поскольку конфигурация элементов массива фиксированная, то к отдельному элементу можно обращаться с помощью одного или нескольких индексов. В качестве индексов могут использоваться константы или переменные порядковых типов. Элементами могут быть как простые переменные любых типов, так и переменные составленных типов (массивов, строк и т.д.), то есть может существовать массив массивов, массив строк и тому подобное. Глубина вложенности этих типов — произвольная, поэтому количество индексов не ограничено, но суммарная длина структуры не должна превышать разрешенные на языке Паскаль 64 Кбайта. В памяти ПК все элементы массива хранятся последовательно, поэтому при переходе от младших к старшим адресов первым меняется самый правый индекс. Порядок работы с массивом:

1) объявить массив в разделе описаний, указав его размер и тип элементов, в него входят (то есть приготовить место в памяти, где будут храниться значения элементов)

2) заполнить необходимыми значениями массив для решения задачи; 3) вывести массив на экран для контроля правильности работы с ним; 4) работа с данным массивом;

5) вывод результатов работы.

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

Массивы большей размерности на практике почти не встречаются.

Одномерный массив. Одномерный массив иначе еще называют линейным массивом.Каждому его элемента ставится в соответствие один индекс. Для начала работы с массивом готовим место в памяти, для чего описываем его в разделе объявлений.

массив 1

                         

Формат описания (1 вариант):

Var

<имя>: array [<размерность>] of <базовый тип элементов>;

Для описания массива можно использовать предварительно определенную константу:

Const Gl = 40; Var

<имя>: array [1 ..G1] of <6азовий тип элементов>; примеры описаний:

Const n = 100;

Var A: array [1..n] of real; В: array [1..100] of integer;

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

Формат описания (2 вариант):

Туре

<имя типа> = array [<размерность>] of <базовый тип элементов>; Var

<Имя массива> <имя типа>;

пример:

Туре

Massiv = array [1..20] of longint; Var M: Massiv;

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

[<Имя массива> <индекс_елементу>]

например:

М (6] — шестой элемент массива М, А [10] — десятый элемент массива А, В [и] — и-й элемент массива В.

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

Методы заполнения одномерного массива:

1) по формуле:

for i: = 1 to n do M [i] = i * и — 10 {или любая другая формула};

2) с клавиатуры: for i: = 1 to n do begin

write ( ‘Введите М [ ‘и,’] : ‘);

readln (M [i]); end;

3) случайно (генератором случайных чисел) из промежутка [А, В]:

for i: = 1 to n do M [i]: = random (B -A) + A;

Методы вывода элементов одномерного массива на экран

1) вывода в столбик:

for i: = 1 to n do writeln (M [i]);

2) вывода в строку:

for i: = 1 to n do write (M [i]: 5);

При выводе элементов массива в строку желательно указать формат вывода, например, write (М [и]: 10: 3) — для действительных чисел или write (М [и]: 5) -для целых.

Можно объединять в одном цикле несколько этапов решения задачи. Например, заполнение массива и вывода элементов массива для контроля на экран.

пример 1

Дано одномерный массив целых чисел А [i], где i = 1, 2, … n. Вывести элементы массива с нечетными индексами. При решении данной задачи нецелесообразно использовать для вывода на экран элементов с четными индексами циклом с параметром, так как он позволяет изменение индекса только на единицу. Поэтому предлагаем воспользоваться циклом с пред или постусловием.

program Task1;

var n, i: word; {n — количество элементов массива, и — переменная цикла} a: array [1..100] of longint; {a — заданный массив}

begin

write ( ‘введите количество элементов массива (<100):’); readln (n);

for i: = 1 to n do begin

a [i] = random (300) {заполнение массива случайными числами}

{вывод массива на ехран для контроля правильности работы программы} write (a [i]: 5);

end;

writeln; {перевода курсора на следующую строку} i: = 2;

while i <= n do begin write (a [i]: 5);

i = i + 2; {переменная цикла меняется на 2, чтобы выбрать только парные элементы} end;

readln; {задержка изображения на экране} end.

пример 2

Написать программу, которая методом обмена (пузырьки) сортирует по возрастанию одномерный массив, задается с клавиатуры.

program Task1; const

 

var

 

 

 

begin

SIZE = 5,

 

a: array [1 ..SIZE] of integer; i: integer;

k: integer; buf: integer;

 

writeln ( ‘Введите’, SIZE, «целых чисел ‘); for k: = 1 to SIZE-1 do

readln (a [k]);

readln (a [SIZE]) for i: = 1 to SIZE-1 do begin

for k: = 1 to SIZE-1 do begin

if a [k]> a [k + 1] then begin

buf = a [k]; a [k] = a [k + 1]; a [k + 1] = buf;

end; end;

for k: = 1 to SIZE do write (a [k], »); writeln;

 

 

 

end.

end; writeln;

for k: = 1 to SIZE do write (a [k], »); readln;

ход работы

1. Выбрать задачу по варианта.

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

3. Написать программу реализации задачи по использованию циклов с параметром, с предусловием и с постусловием.

4. Выполнить компиляцию и запустить программу на выполнение в среде PascalABCNET.

6. Составить отчет о проделанной работе согласно образцу, представленный в приложении А.

 

ВАРИАНТЫ ЗАДАЧ

 

  1. Заданная строка чисел и число-граница. Вывести строку, в которой поменять местами части до границы и после границы. Массив инициализировать при объявлении.
  2. Разработать программу обработки результатов экзамена. Для каждой оценки вывести процент от общего количества оценок .
  3. Разработать программу нахождения среднего значения ненулевых чисел в массиве произвольных 10 цифр .. Массив инициализировать при объявлении.
  4. Разработать программу нахождения среднего, значения температуры за тиждень.значення температур задать массивом. Массив инициализировать при объявлении.
  5. Заданная строка чисел и число-граница. Вывести строку в заданной границы. Массив инициализировать при объявлении.
  6. Заданная строка чисел и число-граница. Вывести строку от заданной границы до конца строки. Массив инициализировать при объявлении.
  7. Разработать программу объединения 2-х одномерных массивов в один. Массив ииинициализуваты при объявлении. Общий масив.вивесты на экран.
  8. Разработать программу нахождения среднего значение произвольных 10 цифр. Массив инициализировать при объявлении.
  9. Разработать программу нахождения максимального значение произвольных 8-х чисел.Массив инициализировать при объявлении.
  10. Разработать программу нахождения минимального значение произвольных 7-х чисел.Массив инициализировать при объявлении.
  11. Разработать программу нахождения суммы произвольных 10-х чисел. массив инициализировать при объявлении.
  12. Разработать программу нахождения произведения произвольных 10-х чисел.Массив инициализировать при объявлении.
  13. Разработать программу нахождения количества нулевых элементов в массиве размерности 10.Массив инициализировать при объявлении.
  14. Разработать программу нахождения заданного с клавиатуры числа в массиве размерности

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

  1. Разработать программу, которая вводит с клавиатуры одномерный массив из 5 целых чисел, после чего выводит количество ненулевых элементов.Перед вводом каждого элемента нужно вывести подсказку с номером элемента.
  2. Разработать программу, которая выводит минимальный элемент введенного с клавиатуры массива целых чисел.
  3. Разработать программу, которая выводит минимальный элемент введенного с клавиатуры массива целых чисел.Для доступа к элементам массива использовать указатель.
  4. Разработать программу нахождения среднего значения ненулевых элементов введенного с клавиатуры массива целых чисел.
  5. Разработать программу нахождения среднего значения элементов массива без учета минимального и максимального элементов массива.
  6. Разработать программу, которая вычисляет среднюю (за неделю) температуру воздуха.Данные должны вводиться во время работы программы.
  7. Написать программу, которая проверяет, находится введено с клавиатуры число в массиве.Массив нужно вводить во время работы программы.
  8. Написать программу, которая вычисляет, сколько раз введенное с клавиатуры число встречается в массиве.
  9. Написать программу, которая определяет количество учеников в классе, чей рост превышает средний.
  10. Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по столбиках.
  11. Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по строках.
  12. В массиве A (n) каждый элемент, кроме первого заменить суммой всех предыдущих элементов.
  13. Заполнить матрицу заданного размера M (k, l) числами 1, 2, 3, 4 так, чтобы по горизонтали, вертикали и диагонали не было одинаковых рядом стоящих чисел.
  14. Каждый элемент x i массива X (n) заменить средним значением первых i элементов этого массива.
  15. Каждый элемент t i массива T (m) заменить минимальным среди первых i элементов этого массива.
  16. Осуществить циклический сдвиг элементов массива T (n) на m позиций слева.
  17. Лабораторная работа № 5 Строки в языке Pascal

Цель занятия.Дать понятие строчных величин, указаний и функций обработки строчных величин.

теоретические сведения

Строка-это последовательность символов кодовой таблицы компьютера (ASCII таблица).

При использовании в выражениях строка берется в одинарные кавычки.

Количество символов в строке (длина строки) может динамически изменяться от 0 до

255. Для описания данных строчной типа используется идентификатор string, по которому указывается в квадратных скобках значение максимально допустимой длины данной строки.Если значение не указывается, то считается, что длина строки составляет 255 байт.

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

Формат описания:

var

<идентификатор,. . . >: String [<махсимальна длина строки>];

пример:

ST: string; {описание строки длиной 255 символов (отсутствует длина рядха в описании)}

ST1: string [50]; {описание строки длиной 50 символов}

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

Операция сцепления (+) применяется для соединения нескольких строк в одну результирующую строку.Например, «П» + «Е» + «В ‘+’ М ‘в’ ПЭВМ»

Длина результирующей строки не должна превышать 255 символов.

Операции отношения (=, <,>, о, <=,> =) осуществляют сравнение двух строчных операндов и имеют приоритет ниже, чем операции сцепления.Сравнение строк делается слева направо до первой не совпадающего символа. Большим считается та строка, в которой первый несовпадающий символ будет иметь больший номер в кодовой таблице ASCII. Если строки имеют различную длину, но в общей части совпадают, считается меньшим ту строку, у которого длина меньше. Строки считаются равными, если они равной длины и содержат одинаковые символы.

Для присвоения строчной переменной значение результата строчной выражения используется оператор присваивания (=). Если длина переменной после выполнения оператора присваивания превышает максимально допустимый при описании размер, все лишние символы справа усекаются (то есть теряются!). Допускается смешивание в одном выражении операндов строчной и буквенного типов. Если при этом буквенные переменной присваивается значение строчной типа, длина строки должна быть равна единице, иначе

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

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

Delete (Str, Poz, N) — извлечение N символов строки Str, начиная с позиции Poz.Если Poz> 255, возникает программное прерывание.

Insert (Strl, Str2, Poz) — вставка строки Strl в Str2, начиная с позиции Poz.

Str (Number, St) преобразование числового значения величины Number и занесения результата в строку St.После Number может записываться формат, аналогичный формату вывода. Если в формате указано недостаточное количество разрядов, поле вывода расширяется до нужной длины.

значение Number выражение результат
1500 Str (Number 6, Str) »               1500 ‘
4.8Е + 03 Str (Number: 10 Str) »               4800 ‘
76854 Str (-Number: 3, Str) «-76854»

Val (St, Number, Cod) — преобразует значение St в величину целого или вещественного типа и размещает результат в Number.Значение St не должно содержать лишних пробелов в начале и в конце строки. Cod целая переменная, значение которой не равна нулю, если при преобразовании обнаружена ошибка. Cod будет содержать номер позиции первого ошибочного символа, a Number не будет определено.

значение Str выражение результат
«1450» val (Str, Number, Cod) 1450 Cod = 0
’14 .2Е + 02 ‘ val (Str, Number, Cod) 1420 Cod = 0
’14 .5А + 01 ‘ val (Str, Number, Cod) ?              Cod = 5

Функции для работы со строками.

Lenght (St) — вычисляет текущую реальную длину в символах строки St.Результат имеет целый тип.

Copy (St, Poz, N) — копирует с St подстроку длиной N символов, начиная с позиции Poz.Если Poz> Lenght (St), то результатом будет пробел; если Poz> 255, то возникнет ошибка при исполнении.

Pos (St1, St2) — обнаруживает первое появление в строке St2 строки St1.Результат имеет целый тип и равен номеру той позиции, где находится первый символ строки Stl. Если в St2 строку St1 не найден, результат равен 0.

UpCase (Ch) — преобразует строчную букву на большую.Параметр результат имеют литерный тип. Обрабатываются только буквы латинского алфавита.

ЗАДАЧА № 1

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

Разгрузка вязания.Дня решения задачи, во-первых, необходимо строчная величина для хранения текста (для хранения большого текста можно зарезервировать массив). Для упрощения задачи будем считать, что текст имеет длину не более 255 символов, то есть для его хранения достаточно одной строки. Кроме этого, нам необходимо переменная символьного типа для хранения заданного символа а количество которых мы будем вычислять.

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

Программа, реализующая описанный алгоритм, имеет следующий вид:

Program Task1; Var и, count: word;

{и — переменная цикла, count — количество найденных символов} a: char; {a — искомый символ}

St: string; {St — данный текст} Begin

Write ( ‘Введите текст: ‘); Readln (St)

Write ( ‘Введите искомый символ: ‘); Readln (a)

Count = 0; (Начальное значение счетчика} For i: = 1 to length (St) do

If St [i] = a Then count = count + l; Writeln ( ‘искомая символов в тексте «, count); Readln; {Задержка изображения на экране} End.

 

ЗАДАЧА № 2

В данном тексте заменить все символы «:» на символы «-» и наоборот.

Решение.Для выполнения замены в тексте одного символа другим следует найден символ (или группу символов) сначала изъять процедурой insert, а потом с той же позиции вставить желаемый символ (или группу символов). Обратите внимание на то, что команды ветвления должны быть обязательно вложенными, потому что если мы найдем символ

«:» И выполним замену, то на его месте появится символ «-», который тоже подлежит замене (для символа «-» рассуждения будут такими же).

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

Program Task2;

Var и: word; {и — переменная цикла} St: string; {St — данный текст} Begin

Write ( ‘Введите текст:’); Readln (St)

For i: = 1 to length (St) do If St [i] = ‘:’ Then

Begin Delete (St, i, 1); Insert ( ‘-‘St, 1); End Else

If St [i] = ‘-‘ Then

begin Delete (St, i, 1); Insert ( ‘:’, St, 1); end; Writeln ( ‘Результирующий строка: ‘, St) Readln;

End.

ЗАДАЧА № 3

Условие: Определить, сколько раз в данном тексте встречается последовательность символов «абв».

Решение: Организуем проход по строке с помощью цикла с параметром, причем учитываем, что следует проверить три последовательно расположенных символов.Один из методов выбора нескольких последовательных символов уже рассматривался ранее (и первый, и + первого и i + второй элементы), поэтому рассмотрим другой метод, заключающийся в использовании функции копирования Copy. Напоминаем, что эта функция включает в качестве параметров исходную строку, номер начала копирования (выделения) и количество выбранных символов, то есть для выбора трех символов с любого места строки Л эта функция будет иметь вид:

Cоpy (St, i, 3).Program Task2;

Var и: byte; {и — переменная цикла} St: string; {St — данный текст}

Count: byte; {Count — счетчик последовательностей} Begin

Write ( ‘Введите текст:’);

Readln (St)

Count = 0; {Начальное значение счетчика} For i: = 1 to length (St) — 2 do

If Copy (St, i, 3) = ‘абв’ Then count = count + 1; Writeln ( ‘Количество искомых последовательностей: ‘, count); Readln;

End.ход работы

1. Выбрать задачу по варианта.

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

3. Написать программу реализации задачи по использованию циклов с параметром, с предусловием и с постусловием.

4. Выполнить компиляцию и запустить программу на выполнение в среде PascalABCNET.

6. Составить отчет о проделанной работе согласно образцу, представленный в приложении А.

ВАРИАНТЫ ЗАДАЧ

 

1. Написать программу, которая кодирует заданный строку по принципу увеличения значения (ASCII-кода) каждого символа на единицу.

2. Написать программу, которая объединяет два введенные с клавиатуры строки в один. Вывести строку на экран.

3. Написать программу, которая сравнивает два введенные с клавиатуры строки. Результаты на экран.

4. Написать программу, которая заполняет строку введенным с клавиатуры символом. Вывести строку на экран.

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

6. Написать программу, которая превращает строчными символы введенного с клавиатуры строки в прописные. Вывести строку на экран.

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

8. Написать программу, которая превращает строчными символы введенного с клавиатуры строки кириллицей в прописные. Вывести строку на экран.

9. Написать программу, которая проверяет введенное с клавиатуры число целое. Вывести результат и введено число на экран.

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

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

12. Написать программу, которая проверяет введенное с клавиатуры число восьмилетнее. Вывести результат и введено число на экран.

13. Написать программу, которая проверяет введенное с клавиатуры число двоичное. Вывести результат и введено число на экран.

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

15. Написать программу, которая выполняет поиск введенного с клавиатуры символа в строке.Вывести указатель на первый найденный символ на экран.

16. Написать программу, которая выводит код введенного с клавиатуры символа .

17. Написать программу, которая выводит количество слов в введенном с клавиатуры строке. Вывести строку на экран.

18.Написать программу, которая выводит сколько слов в введенном с клавиатуры строке.

Вывести строку на экран.

19.Написать программу, которая запрашивает имя пользователя и приветствует его. 20.Написать программу, которая вычисляет длину введенного с клавиатуры строки.

21. Написать программу, которая выводит на экран первую часть кодирования символов (символы с кодами от 0 до 127). Таблица должна состоять из 8 колонок и 16 строк. В первом столбце должны быть символы с кодом от 0 до 15, во втором — от 16 до 31 и т. д

22. Написать программу, которая удаляет из введенного с клавиатуры строки начальные промежутки.

23. Написать программу, которая объединяет два строки в один. Вывести строку на экран.

24. Написать программу, которая до первой строки добавляет 5 символов второй строки. Вывести строку на экран.

25. Написать программу, которая сравнивает символы двух строк и возвращает позицию (начиная с нуля), в которые строки не совпадают.

26.При интернет — общении с соотечественниками за рубежом часто возникает проблема из-за отсутствия кириллицы в иностранных респондентов, а также слабое знание иностранных языков у соотечественников. Один из выходов — набор украинских слов похожими по начертанию буквами английского алфавита. В заданном украинском тексте выбрать те слова, которые без искажений могут быть написаны латинскими буквами, например: -TEXHIKYM‖, -CTAPOCTA‖.

27.В заданном словаре найти группы слов, записанных одинаковыми буквами и ведре с няют ь ся л и ш е их п о р я д к ом, т в бы то п е рест а лишь в ко й, на п р и клас д: — РАН В К‖ —

— КС ОНА ‖.

28.Задан список украинских фамилий. Упорядочить их по алфавиту. Проверить написание первой буквы большой.

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

30.Одна из ошибок, которую часто допускают неопытные наборщики — дважды записанное слово. Найти такие ошибки в заданном тексте и исправить их.

[Всего голосов: 3    Средний: 5/5]

Читать  Системное программирование пособие – Принципы построения компиляторов – фазы компиляции