![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
CherkaS |
![]()
Сообщение
#1
|
|||
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
написал поиск по сумме товара а она не работает вернее работает ели ввести 1 но если вводить все кроме 1 то там все зацикливается и все кароче так не должно быть вот код программы!!! посмотрите пожалуйста и скажите что у меня не правильно почему программа не работает!! program search;
uses
crt;
var
res:text;
x,v,k,s,s1,s2:string;
n:boolean;
m,l,i,b,p:integer;
z:longint;
c:char;
BEGIN
assign(res,'BD.che');
write ('[vvedite CTOUMOCTb iskomogo produkta] ');
readln(x);
z:=length(x);
reset(res);
while not EOF(res) do
begin
readln(res,k);
p:=pos('_',k);
s1:=k;
s2:=k;
delete(s1,1,p);
delete(s2,p,length(k));
l:=length(s1);
for i:=1 to l do begin
for m:=1 to z do
if s1[i]=x[m] then begin;
n:=true;
inc(i);
end else begin
n:=false;
break;
end;
if n=true then
begin
writeln(s2+' '+s1+'pyb.');
end; end;
end;
close(res);
readln;
end.
файлы в базе выглядят следующем виде: помидори_12 памела_65 огурцы_9 (название продукта)_(цена продукта) Сообщение отредактировано: klem4 - 18.04.2007 16:03 |
|||
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Так не проще?
program search;
uses
crt;
var
res:text;
x, price: integer;
s: string;
code, pp: integer;
BEGIN
assign(res,'BD.che');
write ('[vvedite CTOUMOCTb iskomogo produkta] ');
readln(x);
reset(res);
while not EOF(res) do begin
readln(res, s);
pp := pos('_', s);
val(copy(s, pp + 1, 255), price, code);
if (code = 0) and (price = x) then
writeln(copy(s, 1, pp - 1) + ' ', x, ' pyb.');
end;
close(res);
readln;
end.
|
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 11:20 |