Наглость - второе счастье!
Ура! представляете, я сама сдела прогу и она пошла!Начала осваивать Паскаль=)
Вот дали еще одну (знаю, что для вас это слишком просто, но не судите строго.я только учусь) :
Даны два слова. Определить, сколько начальных букв превого слова совпадает с начальными буквами второго слова.
Я что-то написала, она даж запускается, но ответ не дает...
вот то что я сделала
Помогите исправить.
Вот дали еще одну (знаю, что для вас это слишком просто, но не судите строго.я только учусь) :
Даны два слова. Определить, сколько начальных букв превого слова совпадает с начальными буквами второго слова.
Я что-то написала, она даж запускается, но ответ не дает...
вот то что я сделала
Помогите исправить.
Да и в паскале первая буква слово - это 1, а по умолчанию i = 0.
А про первую букву: это написать L:=length(s1) for i:=1 to L , так?
type
TStr = array[0..80] of Char;
var s1,s2:TStr;
тогда можно и от 0 все делать и проверять конец строки на 0; типа
while ((s1[i]<>Chr(0)) and (s2[i]<>Chr(0))) do
begin
...
end;
внутри нужно увеличивать i если соответсвующие элементы массивов равны, или сделать break из цикла если всё плохо.
в i у нас и накопится длина одинаковой части.
Особенно ХИП (очередь с приоритетами) самому писать это ваще "круто"..
/me посмотрел на стопочку старых дисков пронумерованных с нуля
uses crt;
var s1,s2,s3:string;
n:integer;
exitFlag:boolean;
begin
write('vvedite slovo1 => ');readln(S1);
write('vvedite slovo2 => ');readln(S2);
exitFlag:=false;
n:=0;
while (n<=length(s1)) and (not exitFlag) do begin
if copy(s1,n,1)=copy(s2,n,1)
then n:=n+1
else exitFlag:=true;
end;
writeln('vsego obshih simvolov = ',n-1);
readkey;
end.
//объяснить?
на компилятор полагайся да сам не плошай. вычисление длины лучше вынести из цикла в отдельную переменную.
а если у нас второе слово короче первого? баги баги баги
да и копи зачем тут?
uses crt;
var s1,s2,s3:string;
ln,n:integer;
begin
write('vvedite slovo1 => ');readln(S1);
write('vvedite slovo2 => ');readln(S2);
if length(s1)<=length(s2)
then ln:=length(s1)
else ln:=length(s2);
n:=0;
while (n<=ln) do begin
if s1[n]=s2[n]
then n:=n+1
else break;
end;
if n=0 then n:=1; //хз почему я так сделала но так работает)))))))
writeln('vsego obshih simvolov = ',n-1); readkey;
end.
// как ни странно но предыдущая версия работала в случае когда второе слово длинней ^^