Напишите программу, что имитирует экран калькулятора, другими словами, нужно, чтобы в ней после введения целого числа меньше 10 (|N | < 10) из клавиатуры вид этой цифры отображался на дисплее. Символ числа должен появляться сразу после ввода фигуры числа
Изображение каждой фигуры или отметки появляется с помощью включения/выключения семи элементов жидкокристаллического дисплея. Состояние программы-дисплея должно отображаться с помощью символов '\' (вертикальная опция), 'J (подчеркивание) и '' (пусто). Цифры и символы минуса должны отображаться следующим образом:
Введение: Файл ввода включает целые числа N (|Nj<1010), одно число в линейке.
Выведение: Исходный файл включает три строки с символическим рисунком дисплея, отдельным на каждую цифру.
Вот такая вот задача. Чесно говоря первая половина вроде понятна, а вот вторая с дисплеем
у тебя сказано
klem4, а ты предлагаешь сделать и графическую (для красоты) и текстовую (для вывода в файл) версии?
Вот такая кака получилась, ттолько тут число адо вводить сразу :
uses crt;
type
TDigit = array[1..7] of string[5];
const
one:TDigit =
('|','|','|','|','|','|','|');
two:TDigit =
(' ---',' |',' |',' ---','|','|',' ---');
thre:TDigit =
(' ---',' |',' |',' ---',' |',' |',' ---');
four:TDigit =
('| |','| |','| |',' ---',' |',' |',' |');
five:TDigit =
(' ---','|','|',' ---',' |',' |',' ---');
six:TDigit =
(' ---','|','|',' ---','| |','| |',' ---');
seven:TDigit =
('---',' |',' |',' |',' |',' |',' |');
eight:TDigit =
(' ---','| |','| |',' ---','| |','| |',' ---');
nine:TDigit =
(' ---','| |','| |',' ---',' |',' |',' ---');
zero:TDigit =
(' ---','| |','| |','| |','| |','| |',' ---');
procedure WriteDigit(var Digit:TDigit; ii:integer);
var
j:integer;
begin
for j:=1 to 7 do begin
gotoxy(pred(ii)*10,j);
writeln(Digit[j]);
end;
end;
var
temp:array[1..11] of char;
i,j:integer;
Begin
clrscr;
write('Введите число : ');
i:=0;
repeat
inc(i);
temp[i]:=readkey;
write(temp[i]);
until temp[i]=#13;
clrscr;
i:=1;
while(not(temp[i]=#13)) do begin
case temp[i] of
'1': WriteDigit(one,i);
'2': WriteDigit(two,i);
'3': WriteDigit(thre,i);
'4': WriteDigit(four,i);
'5': WriteDigit(five,i);
'6': WriteDigit(six,i);
'7': WriteDigit(seven,i);
'8': WriteDigit(eight,i);
'9': WriteDigit(nine,i);
'0': WriteDigit(zero,i);
end;
inc(i);
end;
readln;
End.
Слишком много написано букв... Делаем вот так:
const
digits[0 .. 9] of TDigit = (
(' ---','| |','| |','| |','| |','| |',' ---'), { zero }
('|','|','|','|','|','|','|'), { one }
(' ---',' |',' |',' ---','|','|',' ---'), { two }
(' ---',' |',' |',' ---',' |',' |',' ---'), { three }
('| |','| |','| |',' ---',' |',' |',' |'), { four }
(' ---','|','|',' ---',' |',' |',' ---'), { five }
(' ---','|','|',' ---','| |','| |',' ---'), { six }
('---',' |',' |',' |',' |',' |',' |'), { seven }
(' ---','| |','| |',' ---','| |','| |',' ---'), { eight }
(' ---','| |','| |',' ---',' |',' |',' ---') { nine }
);
...
while(not(temp[i]=#13)) do begin
case temp[i] of
'0' .. '9': WriteDigit(digits[ord(temp[i]) - ord('0')], i);
end;
inc(i);
end;
Хм...
const
digits : array [0 .. 9] of TDigit = (
(' _ ', '| |', '|_|'), { zero }
(' ', ' |', ' |'), { one }
(' _ ', ' _|', '|_ '), { two }
(' _ ', ' _|', ' _|'), { three }
(' ', '|_|', ' |'), { four }
(' _ ', '|_ ', ' _|'), { five }
(' _ ', '|_ ', '|_|'), { six }
(' _ ', ' |', ' |'), { seven }
(' _ ', '|_|', '|_|'), { eight }
(' _ ', '|_|', ' _|') { nine }
);
type
TDigit = array[1..3] of string[3];
Ой! Тут ведь ещё:
Уже не жду, вот:
uses
crt;
type
TDigit = array [1 .. 3] of string [3];
const
digits : array [0 .. 9] of TDigit = (
(' _ ', '| |', '|_|'), { zero }
(' ', ' |', ' |'), { one }
(' _ ', ' _|', '|_ '), { two }
(' _ ', ' _|', ' _|'), { three }
(' ', '|_|', ' |'), { four }
(' _ ', '|_ ', ' _|'), { five }
(' _ ', '|_ ', '|_|'), { six }
(' _ ', ' |', ' |'), { seven }
(' _ ', '|_|', '|_|'), { eight }
(' _ ', '|_|', ' _|') { nine }
);
var
temp : array [1 .. 11] of char;
i, digit : integer;
input_file, output_file : text;
input_file_name, output_file_name : string;
Begin
clrscr;
Write('Введите имя файла с даммыми: ');
ReadLn(input_file_name);
Assign(input_file, input_file_name);
Reset(input_file);
Write('Введите имя файла для вывода результата: ');
ReadLn(output_file_name);
Assign(output_file, output_file_name);
Rewrite(output_file);
while not eof(input_file) do begin
ReadLn(input_file, digit);
case digit of
0 .. 9: for i := 1 to 3 do
writeln(output_file, digits[Digit][i]);
end;
end;
Close(input_file);
Close(output_file);
Writeln('Операция завершена');
Writeln('Нажмите любую клавишу для продолжения...');
readkey;
End.
Yurka,
файл с данными где находится? В той же папке, где .EXE? И вводить надо не только его имя, а вместе с расширением... Например,