Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник.docx
Скачиваний:
36
Добавлен:
21.12.2018
Размер:
2.15 Mб
Скачать

Вывод на экран таблицы ascii

Задача:

ASCII – код для обмена информацией. В настоящее время чаще используется 8-битный вариант (под каждый символ выделяется 1 байт памяти). Проще говоря, получается таблица из 256 символов, соответствующих числам от 0 до 255.

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

Алгоритм решения задачи:

Можно использовать цикл for и перебрать все значения от 0 до 255, поставив им в соответствие символ. В языке программирования Pascal есть специальная функция chr, которая возвращает символ, порядковый номер которого передается ей в качестве аргумента.

Программа на языке Паскаль:

var

ch: char;

i: byte;

begin

for i := 0 to 255 do begin

if (i mod 5) = 0 then

writeln;

write (i:3,' - ', chr(i), '; ')

end;

readln

end.

Примечания:

Инструкция if внутри цикла for здесь исключительно для перехода на новую строку после вывода пяти очередных символов.

Можно немного изменить программу и выводить ее как таблицу, из 16 строк и столбцов. Упрощенный код программы тогда может выглядеть примерно так:

var

ch: char;

i,j: byte;

begin

for i := 0 to 15 do begin

for j := 0 to 15 do

write (chr(i*j):2);

writeln

end;

readln

end.

Таблица умножения на Паскале

Задача:

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

Допустим, нам требуется вывести на экран таблицу умножения.

Алгоритм решения задачи:

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

Внутренний цикл for формирует каждое значение в строке. Всего значений в строке 10. Значит и число его итераций должно быть 10.

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

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

Простые задачи Ц

Вычисление суммы ряда чисел

Задача:

Вычислить сумму ряда чисел 1/12 + 1/22 + 1/32 + … + 1/n2, где n определяется пользователем.

Программа на языке Паскаль:

var

n, i: word;

sum: real;

begin

write ('n = '); readln (n);

sum := 0;

for i := 1 to n do

sum := sum + 1/(i*i);

writeln (sum:6:5);

readln

end.

Программа "Угадай число"

Задача:

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

Описание переменных:

a – число, "загаданное" компьютером;

b – очередное число, вводимое пользователем.

Алгоритм решения задачи:

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

Пока число a не совпадет с числом b, пользователю будет предлагаться ввести очередное число. При этом, если b > a, то на экран будет выдаваться сообщение "Много". Иначе будет проверяться условие b < a. При его положительном значении появится сообщение "Мало", иначе сообщение "Угадал".

Не трудно понять, что если b не больше и не меньше a, то значит оно равно a. В таком случае логическое выражение при while вернет false, и цикл прервется.

Программа на языке Паскаль:

var

a,b: integer;

begin

randomize;

a := random(100);

while a <> b do begin

write('Введи число: ');

readln(b);

if b > a then

writeln('Много')

else

if b < a then

writeln('Мало')

else

writeln('Угадал');

end;

readln

end.

Примечания:

Угадать число всегда можно не более чем через 6-7 попыток, если делить каждый оставшийся диапазон пополам.