|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | 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, все теперь заработала программа. Спасибо  |