Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка вторая.doc
Скачиваний:
56
Добавлен:
05.06.2015
Размер:
1.61 Mб
Скачать

1.Организовать ввод фио только на русском языке.

Program Mnogestv5;

{Задача.Организовать ввод ФИО только на русском

языке.

Решение.Арсланов Ильдар,

ЦНИТ "Северная Звезда"

16.03.2000.}

Uses

Crt;

Var

litera:set of char;

Name,s:string;

ch:char;

Flag:boolean;

x,I:integer;

Begin

ClrScr;

Randomize;

litera:=[' ','А'..'п','р'..'я',#8];

Write('Введите фамилию,имя,отчество ');

Writeln;

Repeat{считатьName}

Repeat {считать в ch код клавиши}

ch:=readkey;

If ch=#8 {Если нажата клавиша BACKSPACE}

then

ch:=#8; {Заменяем неправильную букву}

if ch<>#13

Then

begin

Flag:=ch in litera;

If flag {если символ входит в множество}

Then

begin

name:=name+ch; {приклеить символ к name}

write(ch); {напечатать этот символ}

end

Else {иначе вверху}

begin

sound(345);

delay(3000);

nosound;

Writeln('Загрузите русский шрифт или');

Writeln('нажмите CTRL-SHIFT');

Writeln('и введите ваше имя ');

end;

end;

Until Flag; {завершить ввод очеред.символа}

Until ch=#13; {завершить ввод name т.к нажата ENTER}

Writeln;

Writeln('Здравствуйте, ',name);

Writeln('Сколько тебе лет ');

Readln(x);

Writeln('А мне,компьютеру ',random(100),' лет');

Readln;

End.

2. Описать множество Mn(1..50) и поместить в него все числа из диапазона A..B, делющиеся без остатка на k.

ProgramMnoj3;

{Задача. Описать множество Mn(1..50) и поместить в него все

числа из диапазона A..B, делющиеся без остатка на k.

Решение. Грушин Кирилл

Центр НИТ "Северная Звезда"

16.03.2000г.}

Uses

Crt;

Type

Chisla = Set of 1..50;

Var

i, k, A, B : integer;

Mn : Chisla;

Procedure Prov;

begin

If (A < 0) or (B < 0)

Then

begin

Sound (1000);

Write ('Неправильный ввод диапазона!!!');

Delay (800);

NoSound;

end;

end;

Procedure Vvod;

begin

Prov;

Mn := [];

For i := A to B do

begin

If i mod k = 0

Then

Mn := Mn + [i];

If i in Mn

Then

Writeln (i,' - Помещено')

Else

Writeln (i,' - Не помещено');

end;

end;

Begin

ClrScr;

TextColor (White);

Write('Введите диапазонA..Bчерез пробел...');

Readln(A,B);

Write ('Введите число k-делитель...');

Readln (k);

Vvod;

Readln;

End.

3. Решить ребус СОЛЬ + СОЛЬ = ЛОСЬ.

ProgramRebus2;

{Задача. Решить ребус СОЛЬ + СОЛЬ = ЛОСЬ.

Решение. Грушин Кирилл

Центр НИТ "Северная Звезда

20.03.2000г.}

Uses

Crt;

Type

Chisla = Set of 0..9;

Var

X : integer;

l, o, s, i : 0..9;

Mn1, Mn2 : Chisla;

Procedure Vivod;

begin

Writeln(' ',X:5); Writeln(' +');

Writeln(' ',X:5); Writeln(' ----');

Writeln(' ',l, o, s, i);

Writeln; Writeln; Writeln;

end;

Procedure Opred;

begin

Mn1 := [];

Mn2 := [];

For s := 1 to 5 do

begin

Mn1 := Mn1 + [s];

For o := 0 to 9 do

If not (o in Mn1)

Then

begin

Mn1 := Mn1 + [o];

For l := 0 to 9 do

If not (l in Mn1)

Then

begin

Mn1 := Mn1 + [l];

For i := 0 to 9 do

If not (i in Mn1)

Then

begin

Mn1 := Mn1 + [i];

X := 1000*s + 100*o + 10*l + i;

Mn2 := [l,o,s,i];

Mn1 := Mn1 - [i];

Vivod;

end;

Mn1 := Mn1 - [l];

end;

Mn1 := Mn1 - [o];

end;

Readln;

Mn1 := Mn1 - [s];

end;

end;

Begin

ClrScr;

TextColor (LightGreen);

Opred;

Readln;

End.