Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Использование строковых переменных


Автор: vetal07 29.4.2009, 21:18
Подскажите что тут исправить
Код

Program lab2zad2naz;
Uses Crt;
Type
Grad=record
g:string;
end;
Var
mas:array[1..10]of grad;
i,j:byte;
kol,kol1:byte;
Procedure Proc;
Begin
   For i:=1 to 10 do
    Begin
    Write('Vvedite gorod #',i,': ');
    Readln(mas[i].g);
    kol1:=0;
    For j:=1 to Length(mas[i].g) do
        Begin
        If (mas[i].g[j]='a')or(mas[i].g[j]='A') Then kol1:=kol1+1;
        end;
    If kol1>1 Then kol:=kol+1;
    End;
   End;
Begin
ClrScr;
kol:=0;
Proc;
Writeln('');
writeln('****************');
Writeln('Kolichestvo gorodov s dvumya bukvami "a": ',kol);
writeln('****************');
Readln;
End.
,

Задача решена через массива с использованием Reccord,а нужно без него,впринципе тут не трудно только надо по убирать массивы,а у меня всеравно что то не получаеться,плиз подскажите!!!

Автор: ФедосеевПавел 29.4.2009, 22:00
Ну и убери массивы. Объяви переменную  -  Town : String   - и её и обрабатывай в цикле вместо mas[i].g
Т.е. "в упор" выполни замену строки "mas[i].g" на строку "Town" во всём тексте программы.

Автор: vetal07 29.4.2009, 22:06
Точнее я не пойму как тут изменить в этой строчке 
If (mas[i].g[j]='a')or(mas[i].g[j]='A') Then kol1:=kol1+1; если mas[i] на Town а с этим как быть g[j]???

Автор: ФедосеевПавел 29.4.2009, 22:17
Код
If (Town[j]='a')or(Town[j]='A') Then kol1:=kol1+1;

Автор: volvo877 29.4.2009, 23:01
Зачем здесь вообще двойные условия - непонятно...
Код
if UpCase(Town[j])='A' then ...
{ или }
if Town[j] in ['a', 'A'] then ...

Автор: vetal07 30.4.2009, 04:59
Всем огромное спасибо за помошь smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)