Упр. 7. Стр. 39

1. Внесите указанные изменения в программу из примера 7.3.

1.  После имени пользователя выводить восклицательный знак.

var imja: string;
begin
writeln ('Как тебя зовут?');
readln(imja);
writeln ('Привет, ', imja, '!');
end.

2. Измените программу так, чтобы выводился текст: «Привет, Ольга. Приятно познакомиться».

var imja: string;
begin
writeln ('Как тебя зовут?');
readln(imja);
writeln ('Привет, ', imja, '. Приятно познакомиться.');
end.

3. Подключите графический режим. Задайте параметры шрифта для текста «Как тебя зовут?» и выводимого текста.

Подключаем графический режим строчкой uses GraphABC;. Для строки «Как тебя зовут?» установим стиль шрифта подчёркнутый командой SetFontStyle(fsUnderline);, затем установим наклонный шрифт SetFontStyle(fsItalic);, название шрифта «Comic Sans MS» SetFontName('Comic Sans MS');, размер 15 SetFontSize(15); и розовый цвет SetFontColor(clPink); для строки «Привет, », а для строки с именем установим синий цвет SetFontColor(clBlue);и снова розовый для строчки «. Приятно познакомиться».

uses GraphABC;
var imja: string;
begin
SetFontStyle(fsUnderline);
writeln ('Как тебя зовут?');
readln(imja);
SetFontStyle(fsItalic);
SetFontName('Comic Sans MS');
SetFontSize(15);
SetFontColor(clPink);
write ('Привет, ');
SetFontColor(clBlue);
write (imja);
SetFontColor(clPink);
write ('. Приятно познакомиться.');
end.

2. Выполните следующие задания, изменив программу примера 7.3.

1.  Выведите приветствие в графическом окне в точке с координатами (70; 70).

Для этого снова воспользуемся uses GraphABC и командой TextOut(70, 70, str), которая выведет нашу переменную str в точке с координатами 70, 70.

uses GraphABC;
var imja, str: string;
begin
writeln ('Как тебя зовут?');
readln(imja);
str := 'Привет, ' + imja;
TextOut(70, 70, str);
end.

2.  Задайте координаты вывода случайным образом.

Задавать случайность координат будем командой random(150), которая будет возвращать значение от 0 до 150.

uses GraphABC;
var imja, str: string;
begin
writeln ('Как тебя зовут?');
readln(imja);
str := 'Привет, ' + imja;
TextOut(random(150), random(150), str);
end.

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

Объявим две переменные для координат — x и y, попросим их ввести с клавиатуры и выведем текст в точке с этими координатами.

uses GraphABC;
var imja, str: string;
var x, y: integer;
begin
writeln ('Как тебя зовут?');
readln(imja);
writeln ('Укажите координату x');
readln(x);
writeln ('Укажите координату y');
readln(y);
str := 'Привет, ' + imja;
TextOut(x, y, str);
end.

4. Задайте параметры шрифта для выводимых сообщений.

Установим шрифт размером 15 и жирный стиль.

uses GraphABC;
var imja, str: string;
var x, y: integer;
begin
SetFontSize(15);
SetFontStyle(fsBold);
writeln ('Как тебя зовут?');
readln(imja);
writeln ('Укажите координату x');
readln(x);
writeln ('Укажите координату y');
readln(y);
str := 'Привет, ' + imja;
TextOut(x, y, str);
end.

3.  Используя программу из примера 7.6, проведите исследование по сравнению символов.

1-2.  Совместно заполните таблицы. Добавьте в каждую таблицу 2—3 строки с другими символами в соответствии с правилом сравнения.

Сравнение символов
русского алфавита,
набранных в одном регистре
S1 S2 Результат
ф а S1 > S2
С Я S1 < S2
я у S1 > S2
г п S1 < S2
Д а S1 < S2
Щ щ S1 < S2
Сравнение символов
латинского алфавита,
набранных в одном регистре
S1 S2 Результат
r z S1 < S2
W J S1 > S2
q d S1 > S2
g y S1 < S2
s l S1 > S2
Z Q S1 > S2
Сравнение символов
русского алфавита,
набранных в разных регистрах
S1 S2 Результат
ы Ы S1 > S2
а Я S1 > S2
я А S1 > S2
д В S1 > S2
щ Ц S1 > S2
в Е S1 > S2
Сравнение символов
латинского алфавита,
набранных в разных регистрах
S1 S2 Результат
Q q S1 < S2
Z a S1 < S2
A z S1 < S2
K f S1 < S2
O o S1 < S2
W z S1 < S2
Сравнение символов цифр
S1 S2 Результат
1 3 S1 < S2
7 9 S1 < S2
4 4 S1 = S2
5 4 S1 > S2
7 7 S1 = S2
3 5 S1 < S2
Сравнение цифр и букв
S1 S2 Результат
Q 1 S1 > S2
2 б S1 < S2
9 ю S1 < S2
z 3 S1 > S2
p 9 S1 > S2
8 T S1 < S2
Сравнение русских и латинских букв
S1 S2 Результат
Q л S1 < S2
w б S1 < S2
Ч k S1 > S2
f а S1 < S2
Y д S1 < S2
е z S1 > S2
Сравнение знаков и цифр
S1 S2 Результат
, 5 S1 < S2
7 ! S1 > S2
9 > S1 > S2
? 6 S1 < S2
- 3 S1 < S2
( 1 S1 < S2

Сделайте выводы.

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

4. Используя программу из примера 7.6, сравните строки. Откройте файл с таблицей и запишите результаты.

S1 S2 Результат сравнения
'string' 'String' S1 > S2
'строка' 'символ' S1 > S2
'alinéa' 'caractère' S1 < S2
'Zeile' 'Zeichen' S1 > S2
'cuerda' 'simbolo' S1 < S2
'778' '8' S1 < S2
'876' '55555555' S1 > S2
'2 + 2' '4' S1 < S2

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

Если ввести символ, отличный от «м» и «ж», то программа всегда будет выводить приветствие синего цвета.

Для вывода сообщения «Ошибка ввода» слегка изменим код и добавим ещё одно условие:

uses GraphABC;
var imja, pol: string;
begin
writeln ('Как тебя зовут?');
readln(imja); writeln(imja);
writeln('Введи свой пол (м/ж).');
readln(pol); writeln(pol);
SetFontColor(clgreen);
if pol = 'ж' then
begin
write('Привет, ');
SetFontColor(clred);
writeln (imja);
end
else if pol = 'м' then
begin
write('Привет, ');
SetFontColor(clblue);
writeln (imja);
end
else
begin
SetFontColor(clred);
writeln ('Ошибка ввода');
end
end.

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

var imja, vop1: string;
begin
writeln ('Как тебя зовут?');
readln(imja); writeln(imja);
writeln('Привет, ', imja, '. А ты любишь читать (д/н).');
readln(vop1); writeln(vop1);
if vop1 = 'д' then
begin
writeln('Хорошо! Книга – источник знаний.');
end
else if vop1 = 'н' then
begin
writeln('Плохо, из книг можно узнать много интересного.');
end
else
writeln(imja, ', ты ответил на вопрос некорректно.');
end.

Добавьте в программу свои вопросы и сообщения.

Добавим ещё один вопрос в программу «Сколько тебе лет?»:

var imja, vop1: string;
var vop2: integer;
begin
writeln ('Как тебя зовут?');
readln(imja); writeln(imja);
writeln('Привет, ', imja, '. А ты любишь читать (д/н).');
readln(vop1); writeln(vop1);
if vop1 = 'д' then
begin
writeln('Хорошо! Книга – источник знаний.');
end
else if vop1 = 'н' then
begin
writeln('Плохо, из книг можно узнать много интересного.');
end
else
writeln(imja, ', ты ответил на вопрос некорректно.');
writeln ('Сколько тебе лет?');
readln(vop2); writeln(vop2);
if vop2 > 18 then
begin
writeln(imja, ', так ты уже взрослый!');
end
else
writeln(imja, ', ты скоро станешь взрослым!');
end.

7. Напишите программу для решения следующей задачи: пользователь вводит свою фамилию, класс и учебное заведение, программа должна вывести сообщение «Учащийся ... учится в ... классе ГУО “...”». Вместо многоточия должны быть выведены соответствующие значения.

var famil, uch: string;
var klass: integer;
begin
writeln ('Введите вашу фамилию');
readln(famil);
writeln('Введите ваш класс');
readln(klass);
writeln('Введите название учебного заведения');
readln(uch);
writeln('Учащийся ', famil, ' учится в ', klass, ' классе ГУО “', uch, '”');
end.