8) в качестве международного стандарта
принята кодовая таблица:
a. ASCII
b. CP1251
c. MS-DOS
d. КОИ8-Р
9) Для сохранения нового документа нужно
Выбрать команду:
а. Файл – Сохранить...
b. Файл – Сохранить как...
c. можно выбрать любую из команд. Файл сохранить или файл - сохранить как..
d. Нажать на крестик
m, n: integer;
ms: array[1..9] of string;
md: array[1..9] of string;
m1: array[11..19] of string;
me: array[1..9] of string;
flag: boolean;
begin
flag := false; { Пока ничего не выведено }
ms[1] := 'сто'; ms[2] := 'двести'; ms[3] := 'триста'; ms[4] := 'Четыреста';
ms[5] := 'пятьсот'; ms[5] := 'пятьсот'; ms[6] := 'шестьсот'; ms[7] := 'семьсот';
ms[8] := 'восемьсот'; ms[9] := 'девятьсот';
md[1] := 'десять'; md[2] := 'двадцать'; md[3] := 'тридцать'; md[4] := 'сорок';
md[5] := 'пятьдесят'; md[6] := 'шестьдесят'; md[7] := 'семьдесят';
md[8] := 'восемьдесят'; md[9] := 'девяносто';
m1[11] := 'одиннадцать'; m1[12] := 'двенадцать'; m1[13] := 'тринадцать';
m1[14] := 'четырнадцать'; m1[15] := 'пятнадцать'; m1[16] := 'шестнадцать';
m1[17] := 'семнадцать'; m1[18] := 'восемнадцать'; m1[19] := 'девятнадцать';
me[1] := 'один'; me[2] := 'два'; me[3] := 'три'; me[4] := 'четыре'; me[5] := 'пять';
me[6] := 'шесть'; me[7] := 'семь'; me[8] := 'восемь'; me[9] := 'девять';
Write('Введите целое число от 1 до 1000: ');
Readln(m);
if (m < 1) or (m > 1000) then Writeln('Шутки шутим?')
else
if m = 1000 then Writeln('Одна тысяча ')
else
begin
{ сотни }
n := m div 100;
if n > 0 then
begin
Write(ms[n]);
flag := true
end;
{ десятки }
m := m mod 100;
if m = 0 then Writeln(' ')
else
begin
if (m > 10) and (m < 20) then
begin
if flag then Write(' ');
Writeln(m1[m])
end
else
if m > 0 then
begin
n := m mod 10;
m := m div 10;
if m > 0 then
begin
if flag then Write(' ') else flag := true;
Write(md[m])
end;
if n <> 0 then
begin
{ единицы }
if flag then Write(' ');
Write(me[n]);
end
end
end
end
end.
Тестовое решение:
Введите целое число от 1 до 1000: 429
Четыреста двадцать девять
{
Получает в w слово из строки s, которое начинается не ранее позиции p.
Возвращает новое значение p, указывающее на первый разделитель delim,
который следует за найденным словом или 0, если такой разделитель не найден.
По умолчанию слова разделяются не менее чем одним пробелом
}
var
i,n:integer;
fBreak:boolean; { флажок для прерывания циклов }
begin
n:=Length(s); fBreak:=False;
{ищем первый символ, отличный от разделителя - начало слова }
while ((p<=n) and (not fBreak)) do
if (p=n) or (s[p]<>delim) then fBreak:=True
else Inc(p);
{ ищем очередной разделитель - конец слова }
if p<n then begin
i:=p; Inc(p); fBreak:=False;
while (p<=n) and (not fBreak) do begin
if (p=n) or (s[p]=' ') then fBreak:=True else Inc(p)
end;
{ теперь слово находится между позициями i и p }
w:=Copy(s,i,p-i)
end;
if p>=n then p:=0
end;
function CountG(w:string):integer;
{ возвращает количество гласных в слове w}
var
i,k:integer;
begin
k:=0;
for i:=1 to length(w) do
if w[i] in ['а','е','ё','и','о','у','ы','э','ю','я'] then Inc(k);
CountG:=k
end;
var
s,w,wmax:string;
p,k,gmax:integer;
begin
Writeln('Введите текст, разделяя слова пробелами');
Readln(s);
s:=LowerCase(s);
p:=1; gmax:=0;
while p>0 do begin
GetWord(s,p,w);
k:=CountG(w);;
if gmax<k then begin gmax:=k; wmax:=w end
end;
if gmax>0 then Writeln('В слове "',wmax,'" максимум гласных, равный ',gmax)
else Writeln('Во введенной строке гласных букв не найдено')
end.