Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2009, 19:51   #1
ac1d_buRn
Пользователь
 
Регистрация: 05.06.2009
Сообщений: 37
По умолчанию Подсчёт кол-ва буквы "А" в слове

написал программку для подсчёта в слове букв "А", но работает ток в консоли:

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var text:string;
    rez,kol,i,n,k:integer;
begin
  writeln('Vvedite text: ',Text); readln(Text);
  k:=length(text);
  kol:=0;

 for i:=1 to k do
 if text[i]='a' then
      begin
        kol:=kol+1;

      end;
    rez:=kol;
    writeln('bukv A - ' ,rez);
   readln;

  { TODO -oUser -cConsole Main : Insert code here }
end.
Пытался сделать её же на форме(http://s50.radikal.ru/i128/0910/a8/4c4e924f80f7.gif), но выдаёт ошибку: "[Warning] Unit1.pas(35): For loop control variable must be simple local variable"


Код:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
var text:string;
    rez,kol,k:integer;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer; 
    begin

  k:=length(text);
  for i:=1 to k do
    if edit1.Text[i]='a' then
      begin
        kol:=kol+1;

      end;
    rez:=kol;

 if rez > 0 then
    label1.Caption:='Bukv "A"'+inttostr(rez)
  else label1.caption:='V etom slove net bukvi "a"';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  kol:=0;
end;
end.
Компилятор глотает, но при вводе слова "karandaw" пишет 2 буквы А...
ac1d_buRn вне форума Ответить с цитированием
Старый 03.10.2009, 20:06   #2
RamireZ
Студент
Пользователь
 
Аватар для RamireZ
 
Регистрация: 30.05.2008
Сообщений: 61
По умолчанию

Цитата:
Сообщение от ac1d_buRn Посмотреть сообщение
написал программку для подсчёта в слове букв "А", но работает ток в консоли:
Пытался сделать её же на форме(http://s50.radikal.ru/i128/0910/a8/4c4e924f80f7.gif), но выдаёт ошибку: "[Warning] Unit1.pas(35): For loop control variable must be simple local variable"


Код:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
var text:string;
    rez,kol,k:integer;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer; 
    begin

  k:=length(text);
  for i:=1 to k do
    if edit1.Text[i]='a' then
      begin
        kol:=kol+1;

      end;
    rez:=kol;

 if rez > 0 then
    label1.Caption:='Bukv "A"'+inttostr(rez)
  else label1.caption:='V etom slove net bukvi "a"';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  kol:=0;
end;
end.
Компилятор глотает, но при вводе слова "karandaw" пишет 2 буквы А...
Изменил ваш код чуть чуть-все работает
Код:
unit Unit1;

interface

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

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

var
  Form1: TForm1;
  text:string;
    rez,kol,k:integer;


implementation


{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
kol:=0;
k:=length(edit1.Text);
  for i:=1 to k do
    if edit1.Text[i]='a' then
      begin
        kol:=kol+1;
      end;
    rez:=kol;
 if rez > 0 then
    label1.Caption:='Bukv "A"'+inttostr(rez)
  else label1.caption:='V etom slove net bukvi "a"';
end;
Во первых, перенес объявление глобальных переменных из Implementation
и изменил объявление переменной k(k:=length(edit1.Text);
RamireZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Подсчёт Количества цифр "2", во введённом, ошибка какая-то.. metoflex Паскаль, Turbo Pascal, PascalABC.NET 2 21.06.2009 13:44
Дана строка символов до точки. Определить, сколько слов содержат ровно три буквы "К". Evidence Паскаль, Turbo Pascal, PascalABC.NET 0 01.06.2009 20:40
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50