|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Лабораторная работа на Delphi №3
Дано натуральное число. Найти сколько раз в нем встречается каждая цифра.
|
#2
|
|||
|
|||
Код:
Var S:string; i,k:integer; c: array [0..9] of integer; begin {Ввести строку} for i:=1 to Length(S) do begin for k:=0 to 9 do if S[i] = IntToStr(k) then inc(c[i]); end; for i:=0 to 9 do writeln(i,' = ',c[i]); readln; end. Последний раз редактировалось ChinYan, 22.12.2010 в 09:27. |
#3
|
||||
|
||||
Как в книге было написано, я так и переписал свой вариант. А число наверно можно поставить любое.
|
#4
|
|||
|
|||
Код:
const c='0123456789'; var i,j,k:integer; s:string; begin write('s=');readln(s); for i:=1 to length(c) do begin k:=0; for j:=1 to length(s) do if c[i]=s[j] then Inc(k); if k<>0 then writeln(c[i],'=',k); end; readln; |
#5
|
||||
|
||||
Stil и ChinYan вам огромное спасибо за помощь. А можно ли эту прогу сделать не под DOS, а под графический режим. Например кидаем на форму одну Edit1 и Memo1, потом вводим числа, нажимаем Enter и результаты выводятся на Memo1. Заранее низский поклон за помощь.
|
#6
|
|||
|
|||
на форме
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); const c='0123456789'; var i,j,k:integer; s:string; begin if Key=#13 then begin s:=Edit1.Text; memo1.Clear; for i:=1 to length(c) do begin k:=0; for j:=1 to length(s) do if c[i]=s[j] then Inc(k); if k<>0 then Memo1.Lines.Add(c[i]+'='+IntToStr(k)); end; end; end; Последний раз редактировалось stil, 22.12.2010 в 10:05. |
#7
|
||||
|
||||
Stil, большое спасибо за помощь.
|
#8
|
|||
|
|||
Я думаю так покрасивее будет.
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var a:array[0..9]of byte; i:byte; begin if Key=#13 then begin for i:=0 to 9 do a[i]:=0; for i:=1 ot length(edit1.text) do inc(a[ord(Edit1.text[i])]); memo1.Clear; for i:=0 to 9 do if a[i] <> 0 then memo1.lines.add(inttostr(i)+' = '+inttostr(a[i])); end; end; |
#9
|
||||
|
||||
Он ругается на, то что я подчеркнул:
Цитата:
|
#10
|
|||
|
|||
Теперь точно правильно.
Код:
procedure TForm1.Button1Click(Sender: TObject); var a:array[0..9]of byte; i:byte; begin for i:=0 to 9 do a[i]:=0; for i:=1 to length(Edit1.Text) do Inc(a[strtoint(Edit1.Text[i])]); memo1.Clear; for i:=0 to 9 do if a[i] <> 0 then memo1.lines.add(inttostr(i)+' = '+inttostr(a[i])); end; |
#11
|
||||
|
||||
Asinkrit, все теперь заработала программа. Спасибо
|