циклич алгоритмы

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
pikass
Сообщения: 14
Зарегистрирован: 23 янв 2006, 02:21

Вот задача

Дано натуральное число N. Определить количество цифр в цифровой записи данного числа,которые имеют наименьшее значение.
У меня количество цифр выдается все время равным 1. Где ошибка в программе. Исправьте если можно.
Листинг программы:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
S: String;
N,count,i, j: Integer;
begin
s:=Edit1.Text;
s:=IntToStr(N);

count:=0;
for i := 1 to 9 do
if pos(IntToStr(i), S) > 0 then
begin
for j := 1 to Length(S) do
if S[j] = IntToStr(i) then inc(count);
ShowMessage('Количество минимальных цифр:' + IntTostr(count));
Break;
end;

end;

end.
SydNey
Сообщения: 3
Зарегистрирован: 26 сен 2005, 17:27
Откуда: Уездный город N
Контактная информация:

pikass писал(а):procedure TForm1.Button1Click(Sender: TObject)]s:=IntToStr(N); - это зачем?[/color]

count:=0;
for i := 1 to 9 do
if pos(IntToStr(i), S) > 0 then
begin
for j := 1 to Length(S) do
if S[j] = IntToStr(i) then inc(count);
ShowMessage('Количество минимальных цифр:' + IntTostr(count));
Break;
end;

end;
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

А вот потому что ты используешь не цикл а промежуток от 1 до 9
for i := 1 to 9 do

Разумней использовать например

Код: Выделить всё

i := 0; 
while (Length(Memo1.Lines[i])>0) do //ну это для примера свое условие вставляй
  begin
    //Твои действия
    inc(i);
  End; 
А вообще на мой взгляд все очень криво написано, хотя я задания не видел..
Ответить