Простые типы данных. Символьный тип.Перечисляемые и интервальные типы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Простые типы данных. Символьный тип.Перечисляемые и интервальные типы



Пример 16. Напишите программу вывода последовательности символов: А АВ ABC... AB..YZ на экран.

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

Program Example_17;

Var i,j:Char;

Begin

For i:='a' To 'z' Do {число начальных отрезков алфавита}

For j:='a' To i Do {число символов в данном начальном отрезке}

Write(j);

Readln;

End.

Результат работы программы:

a a b a b c a b c d...x y z

Пример 17. Напишите программу, которая подсчитывает число цифр, входящих в исходный текст. Текст - это последовательность символов, ввод которой заканчивается нажатием клавиши <Enter>.

Решение. Так как окончанием ввода последовательности служит нажатие клавиши <Enter> (ее обозначение - #10), будем вводить символы до тех пор, пока значение очередного символа не совпадет со значением #10. Анализируя каждый символ, будем увеличивать счетчик, если символ является цифрой.

Program Example_18;

Var ch:Char;

k:Integer;
Begin

Read(ch);

k:=0;

While ch<>#10 Do {пока не нажата клавиша <Enter>}

Begin

If (ch>='0') And (ch<='9') Then inc(k); Read(ch);

End;

Writeln('Число цифр равно ',k);

End.

Вещественный тип

Пример 18. Напечатайте таблицу значений функции у = sin(x) на отрезке [0, 1] с шагом 0,1 (считайте, что при печати на каждое вещественное число отводится по 4 позиции строки).

Решение. Постановка задачи наталкивает нас на использование цикла с вещественным параметром, но цикл с параметром предполагает использование переменной порядкового типа, а тип Real таковым не является.

Program Example_18_l; {вариант 1}

Var i: Real;

Begin

i:=0;

While i<=l Do

Begin

Writeln(i:2:l, ‘’,sin(i):4:3);

End;

Readln;

End.

Program Example_18_2;{вариант 2}

Var i: Integer;

Begin i:=0;

While i<=10 Do Begin

Writeln(i,’’,sin(i/10):4:3); Inc (i);

End; Readln;

End.

На первый взгляд работа этих программ должна быть одинаковой, но, запустив программы, мы обнаружим, что первая программа выдает значения функции sin(x) для всех значений х от 0 до 0,9, а вторая программа - для всех значений х от 0 до 1. Почему это происходит?

Пример 19. Дано х, принадлежащее интервалу от -1 до 1. Составьте программу вычисления суммы ряда с заданной точностью Е. Нужная точность считается полученной, если очередное слагаемое оказалось по модулю меньше, чем данное малое положительное число Е (это и все последующие слагаемые учитывать не надо).

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

Program Example_19;

Var x,st,si,у,e:Real;

n,z:Integer;

Begin

Write('Введите х, принадлежащее (-1,1)');

Readln (x); Write('Введите погрешность вычисления');

Readln (e); y:=0; n:=l; z:=l; st:=x; sl:=x;

Repeat

Inc(y,z*sl); Inc(n); z:=-z; st:=st*x; sl:=st/n;

Until sl<e;

Writeln(y);

Readln;

End.



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 171; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.96.159 (0.005 с.)