![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Ali |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите очень надо, а я в программировании не силен, заранее спосибо
1. Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв, между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу: удалив из слова все предыдущие вхождения последней буквы. 2. Дана непустая последовательность слов, в каждом из которых от 1 до 6 латинских букв n, л между соседними словами - запятая, за последним словом - точка. Напечатать те слова, у которых одинаковые "соседи", т.е. совпадают предыдущее и следующее слова (определить процедуру readword(w) которое вводит очередное слово и присваевает его 6-литерной строке w, а запятую или точку, присваевает некоторой глобальной переменной). 3. type строка=packed array(1..100) of char; описать рекурсивную логическую функцию симм(s,i,j) проверяющую, является ли симметричной часть строки S, начинающаяся i-м и кончающаяся j-м ее элементами |
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
1 и 2 решается,используя материал FAQ'a...
FAQ: Разбиение строки на слова. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
hiv |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
3) Рекурсивная функция:
type Tstr=packed array(1..100) of char;
. . . . .
function simm(s:Tstr; i,j:integer):boolean;
begin
if (i=j)or((j-i)=1) then simm:=(s[i]=s[j]) {проверка на конец рекурсии}
else simm:=(s[i]=s[j]) and simm(s,i+1,j-1); {сама рекурсия - смотрим вглубь строки}
end;
Сообщение отредактировано: volvo - -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
настя |
![]()
Сообщение
#4
|
Гость ![]() |
подскажите пожалста поподробней как эту задачку решать, а то у меня че то циклица
![]() |
мисс_граффити |
![]()
Сообщение
#5
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
что именно у тебя "циклица"?
код - в студию -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Гость |
![]()
Сообщение
#6
|
Гость ![]() |
задача у меня выглядит так:
function simm(S:string; i,j:integer):boolean;
var
b: boolean;
begin
clrscr;
while i<=j do
begin
if S[i]=S[j] then
begin
inc(i);
dec(j);
b:=simm(S,i,j);
end
else
begin
simm:=false;
end;
simm:=true;
end;
var
i,j:integer;
s:string;
boo:boolean;
begin
S:='123321t';
i:=1;
j:=6;
boo:=simm(S,i,j);
if boo then
writeln('симметрично');
else
writeln('несимметрично');
readln;
end.
Я бы сказала что оно вообще как-то не так работает, а как надо я не знаю. Помогите пожалуйста! Сообщение отредактировано: volvo - |
настя |
![]()
Сообщение
#7
|
Гость ![]() |
туда надо по идее еще одну переменную ввести а какую и куда я незнаю
|
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата туда надо по идее еще одну переменную ввести Не надо туда ничего вводить - оттуда еще убрать можно половину... Зачем тебе B, например? Да и вызываешь ты функцию так, что она у тебя заведомо всегда будет выдавать True, потому, что с первого по шестой символ-то строка как раз симметрична...Попробуй: uses crt;
function simm(S:string; i,j:integer):boolean;
var b: boolean;
begin
if i <= j then begin
if S[i]=S[j] then begin
inc(i);
dec(j);
simm:=simm(S,i,j);
end
else begin
simm:=false;
end;
end
end;
var
i,j:integer;
s:string;
boo:boolean;
begin
clrscr;
S:='123321t';
boo:=simm(S,1,length(s));
if boo then writeln('симметрично')
else writeln('несимметрично');
readln;
end.
|
настя |
![]()
Сообщение
#9
|
Гость ![]() |
искренне восхищаюсь вашим мастерством! огромнейшее спасибо за помощь!
а еще с одной поможете? Програмка без процедуры работает отлично , но препод требует хлеба и зрелищ, а точнее процедуру. Начинаю переделывать - не работает! не посмотрите что не так? Задачка такая: Два натуральных числа называются «дружественными», если каждое из них равно сумме всех делителей (кроме его самого) другого (например, числа 220 и 284). Найти все пары «дружественных чисел», которые не больше данного числа N. |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
|
Гость |
![]()
Сообщение
#11
|
Гость ![]() |
решала я ее так:
uses crt; var mas:array[1..500,1..2] of integer; n,k,s2,s1,j,i: integer; procedure sum; Var i,j,k:integer; s1:integer; begin s1:=0; inc(k); for i:=1 to trunc(j/2) do if (j mod i:=0) then s1:=s1+i; mas[k][1]:=s1; mas[k][2]:=j; end; Begin begin write('введите число'); readln(n); k:=0; for i:=2 to n do sum; end; s2:=0; for i:=1 to k do for j:=1 to k do if (i<>j) then begin if (mas[i][1]=mas[j][2]) and (mas[j][1]=mas[i][2]) then begin writeln(mas[i][2], ' ', mas[j][2]); inc(s2); end; if (s2=24) then begin readkey; clrscr; s2:=0; end; end; readln; end. |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
А вот это я не буду смотреть, извини... Во-первых, я тебе привел ссылку на свое решение, зачем мне еще раз изобретать велосипед. А во-вторых, ЭТО со строками (кажется, это ЧУЖАЯ тема, с ЧУЖИМ вопросом, не так ли?) никак не связано...
|
настя |
![]()
Сообщение
#13
|
Гость ![]() |
я, несмотря на многочисленные старания, ваше предыдущее решение не понимаю. Если это возможно скажите что у меня не так, ведь без процедуры же все работает. Заранее благодарна.
|
![]() ![]() |
![]() |
Текстовая версия | 18.04.2025 12:52 |