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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2008, 17:22   #1
Mrs.BlondieProger)
Новичок
Джуниор
 
Регистрация: 25.06.2008
Сообщений: 1
Лампочка Задача на строки и вхождения

Помогите пожалуйста исправить проги,условия задачь приведены ниже.

1)Даны две строки: S1 и S2. Проверить, содержится ли строка S2 в строке S1. Если да, то вывести номер позиции, начиная с которой S2 содержится в S1, если нет, то вывести 0.

Код:
Program smth1;
Var s1, s2 : string;
Function Check(const s1, s2 : string) : integer;
Var I, j : integer;
	F1 : Boolean;
Begin 
	Check := 0;
	If length(s1) – length(s2) < 0 then Exit;
	For i : =1 to length(s1) – length(s2) + do begin
F1 :=true;
For j :=1 to length(s2) do
F1 :=f1 and (s1[i+j-1] = s2[j]);
If f1 then begin
Check :=I;
Exit;
End;
End;
End;
Begin
	Readln(s1);
	Readln(s2);
	Writeln(check(s1,s2));
Readln;
End.
2)Найти сумму положительных нечётных чисел, меньших N.

Код:
Program xyz;
Var
	a,b,i,k,n:integer;
begin
	writeln (‘vvedi n’);
	readln(n);
for i:=1 to n do begin
if I mod 2<>0 then
inc(k,i);
end;
writeln;
writeln(k);
readln;
end.
Mrs.BlondieProger) вне форума Ответить с цитированием
Старый 25.06.2008, 17:32   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

2 задача.

inc(k,i); - зачем увеличиваете перемную i ? Неудастся это сделать т.к. она используется в цикле.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 25.06.2008, 18:16   #3
begemotikdin
Пользователь
 
Аватар для begemotikdin
 
Регистрация: 17.12.2007
Сообщений: 36
По умолчанию

2-я задача
Код:
summa:=0;
i:=0;
while i=n do 
 begin
  if (i>0) and (i mod<>0) then
    begin   
   summa:=summa+i; 
     end;
  inc(i);
 end;
begemotikdin вне форума Ответить с цитированием
Старый 25.06.2008, 18:17   #4
Makarov
Форумчанин
 
Аватар для Makarov
 
Регистрация: 03.01.2008
Сообщений: 102
По умолчанию

Задача 1: решение осуществляется с помощью одной функции - pos.
Код:
 a:=pos(s1,s2);
 if (a<>0) then writeln(a)
 else writeln('Строки s2 в строке s1 нет');
Функция pos, определяет с какой позиции в строке s1 начинается строка s2.
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
Makarov вне форума Ответить с цитированием
Старый 25.06.2008, 18:45   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
summa:=0;
i:=0;
while i=n do
begin
if (i>0) and (i mod<>0) then
begin
summa:=summa+i;
end;
inc(i);
end;
Исправьте while i=n do на while i<=n do
puporev вне форума Ответить с цитированием
Старый 25.06.2008, 21:15   #6
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Цитата:
Код:
summa:=0;  
 i:=0;  
 while i=n do   
 begin  
 if (i>0) and (i mod<>0) then  
 begin     
 summa:=summa+i;   
 end;  
 inc(i);  
 end;
и исправьте i mod <> 0 на i mod 2 <> 0
-=<[Evklidd]>=- вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на строки Juhn Паскаль, Turbo Pascal, PascalABC.NET 1 13.05.2008 16:10
задача на строки Hostlman Помощь студентам 2 26.12.2007 03:17
Задача на строки sergfanat Паскаль, Turbo Pascal, PascalABC.NET 11 19.12.2007 15:34