Форум: "Потрепаться";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];
ВнизПомогите с массивами Найти похожие ветки
← →
Андрей Сенченко (2002-01-02 14:24) [8]
program 47;
uses crt;
label 1,2;
Объявление меток в Pascal может потребоваться только в совсем уж уникальных случаях ... учись от этого отказываться.
var
а:string;
b,c,f:array [0..240] of string;
del,i,k:integer;
Судя по дальнейшему коду ( если его в корне не переписывать ) достаточно объявить array [1..9] значения "0" и "10" .. "240" Ты все-равно не используешь
Дальше не вдаваясь в исправление алгоритма:
begin
ClrScr;
del:=0;
readln(a);
for i:=1 to 9 do
begin
b[i]:=a;
delete(b[i],i+1,length(a));
delete(b[i],1,i-1);
end;
for i:=1 to 9 do c[i]:=b[i];
for i:=1 to 9 do
begin
for k:=1 to i-1 do
begin
if c[i]=b[k] then goto 1
end;
f[i]:=c[i];
goto 2;
1:
del:=del+1;
2:
end;
1. Безусловно цикл "for k:=1 to i-1 do " работать не будет, потому что верхняя граница в большинстве случаев меньше нижней.
2. Вместо использования меток гораздо естественнее использовать полностью конструкцию ( ЕСЛИ - ТО - ИНАЧЕ ):
begin
for k:=1 to i-1 do
begin
if c[i]=b[k]
then
del:=del+1 // Твоя МЕТКА 1
else // То есть ИНАЧЕ выполняем то, что обходили МЕТКОЙ 1
f[i]:=c[i];
end;
end;
Ну и здесь
Writeln("Полученная строка");
for i:=1 to 9 do write(" ",f[i]);
writeln;
write("Число удаленных символов ",del);
readln;
Если уж используешь CRT, то для ожидания нажатия клавиши пиши конструкцию типа
Repeat Until KeyPressed;
...
Это безусловно не все.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c