ну як реалізувати стек і запис в нього и виведення я розумію
але як зробити перебі елементів щось не тямлю
тут процедура напевно має рекурсивна бути але яка?
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Повідомлення користувача Stroncickiy
Сторінки 1
ну як реалізувати стек і запис в нього и виведення я розумію
але як зробити перебі елементів щось не тямлю
тут процедура напевно має рекурсивна бути але яка?
Ось розвязок
program kjj;
var t:array[2..9] of string;
i,m:integer;
procedure sign_choice4(s,r : longint; op : char; n : integer);
var newr:longint;
begin
if op = '+' then newr := r+s else newr := r-s;
if n <= 9 then begin
t[n] := '+'; sign_choice4(n,newr,'+',n+1);
t[n] := '-'; sign_choice4(n,newr,'-',n+1);
t[n] := ''; sign_choice4(s*10+n,r,op,n+1);
end
else
if newr=m then begin
for i := 2 to 9 do write(i-1,t[i]);
writeln('9');
end;
end;
begin
readln(m);
sign_choice4(1,0,'+',2);
end.
Ну що так ви краще розумієте суть завдання
Не розумію у чому саме проблема.
проблем у мене немає бо я не автор теми а вирішував її
вибачаюсь , просто машинально ввів кілька змінних які в коді програми не потребуються і забув стерти....
Анаграматор — спеціальний пристрій для отримання зі слова його анаграм (тобто слів, які записані тими ж буквами, але в іншому порядку). Цей пристрій уміє виконувати 2 операції:
1) Взяти чергову букву вихідного слова і помістити її у стек;
2) Взяти букву зі стеку і добавити її у кінець вихідного слова;
Стек —це вмістилище даних, яке працює за принципом «перший прийшов – останній пішов». Стек можна уявити собі як дитячу пірамідку. Коли ми додаємо букву у стек, це відповідає тому, що на стержень пірамідки ми надіваємо зверху кільце, на якому написано відповідну букву. Коли беремо букву зі стеку , то це відповідає тому, що ми знімаємо зі стержня верхнє кільце і дивимося яка буква на ньому написана.
Наприклад, слово TROT у слово TORT може бути перетворене Анаграматором двома різними послідовностями операцій: 11112222 або 12112212.
Напишіть програму, яка за двома заданими словами обчислює кількість різних послідовностей операцій Анаграматора, які перетворюють перше з цих слів у друге, а також знаходить самі ці послідовності.
Формат вхідних даних
Перша стрічка вхідного файлу an_in.txt містить вхідне слово, а друга — слово, яке слід отримати. Слова містять тільки великі латинські букви і мають довжину не більше 50 символів. Обидва слова мають однакову довжину. В цих строках не міститься пробілів.
Формат вихідних даних
У першій стрічці вихідного файлу an_out.txt виводиться кількість послідовностей операцій Анаграматора з допомогою яких можна перетворити перше слово у друге, а також самі послідовності операцій. Кожна послідовність повинна бути виведена в окремій стрічці і містити лише цифри 1 і 2 (які вказують порядок виконання операцій), виведених без пробілів.
MADAM
ADAMM
1111222122
1111222212
1121212122
1121212212
4
суть питання як реалізувати повернення індекса до 1 коли від доходить до макс значення і
Після завершення Помаранчевої революції, комендант наметового містечка вирішив видати особливу грамоту «Стояв до останнього» тому, хто останнім зніме свій намет з Хрещатика.
Оскільки, бажаючих отримати єдину грамоту було багато, комендант вирішив діяти чесно. Він по колу розмістив кружечки з номерами усіх N наметів і попросив кожного члена наметового містечка задумати якесь число. Коли всі задумані числа додали, комендант отримав число M.
Далі комендант почав відраховувати від першого кружечка до кружечка з номером М. Номер намету, на який випадало число М знімався з кругу, знімався сам намет, а комендант продовжував знову рахувати до М починаючи з наступного кружечка.
Допоможіть коменданту за заданими з клавіатури N і M встановити кому видавати грамоту.
program mas;
var
a: array [1..100] of integer;
b: array [1..100] of integer;
k,z:real; i:integer;
begin
a[1]:=1;
for i:=2 to 100 do
begin
a[i]:=a[i-1]+2;
end;
for i:=1 to 100 do
begin
if a[i]<5 then b[i]:= trunc((abs(a[i]))/2);
if a[i]>=5 then b[i]:= 2* a[i];
end;
writeln('----------МАСИВ А----------');
for i:=1 to 100 do
begin
write(' ',a[i],' ');
end;
writeln;
writeln('----------МАСИВ B----------');
for i:=1 to 100 do
begin
write(b[i]:2,' ');
end;
end.
У мене виникає питання по реалізації циклу , тобто як саме групувати цифри щоб отримати результат,
я думаю треба зєднувати цифри в числа а потім оператором case перебирати варіанти + чи - поки не вийде сума , але послідовність мені поки що в голову не приходить ...
Program Moroz;
type obme=1..100;
var
n,m,k,i,z:obme;
dity:array[1..100] of integer; {тут вказується в якому мішку лежить подарунок для кожної дитини}
mih1: array[1..100] of integer;
mih2: array[1..100] of integer;
begin
writeln('Скільки дітей '); readln(n);
writeln('Скільком дітям подарунки лежать у 1 міщку' ) ; readln(m);
writeln('Скільком дітям подарунки лежать у 2 міщку') ; readln(k);
for i:=1 to m do
begin
writeln('введіть номер ', i,' ої дитини що отримає подарунок з 1 мішка');
readln(mih1[i]);
end;
for i:=1 to k do
begin
writeln('введіть номер ', i,' ої дитини що отримає подарунок з 2 мішка');
readln(mih2[i]);
end;
for i:=1 to n do
begin
if mih1[i]<>0 then dity[mih1[i]]:=1;
if mih2[i]<>0 then dity[mih2[i]]:=2;
end;
for i:=1 to n do
begin
if dity[i]=0 then dity[i]:=3;
end;
z:=n-m-k;
write('Дітей що отримають подарунок з 3 мішку ',z, 'а це діти з номерами');
for i:=1 to n do
begin
if dity[i]=3 then write(i);
end;
end.
Населені пункти бувають двох типів: села і міста. Крім того, у державі є одна столиця (вона може розташовуватися як у місті, так і на селі). Кожна дорога з’єднує два населених пункти і для проїзду по ній потрібно Ті хвилин. У столиці було вирішено провести державну командну олімпіаду з інформатики. Для цього в усі міста зі столиці були відправлені гінці (по одному гінці до одного міста) з інформацією про олімпіаду. Напишіть програму, яка порахує, в якому порядку і за який час кожен з гінців дістанеться до свого міста. Вважаться, що гонець під час шляху не спить і ніде не затримується.
Формат вхідних даних.
У вхідному файлі спочатку записані 3 числа N, M, K – кількість населених пунктів, кількість доріг і кількість міст (2<=N<=1000, 1<=M<=10000, 1<=K<=N). Далі записано номер столиці С (1<=C<=N). Наступні К чисел задають номери міст. Далі йдуть М трійок чисел Si, Ei, Ti, що описують дороги: Si i Ei – номери населених пунктів, що з’єднує ця дорога, а Ті – час для проїзду по ній (1<=Ti<=100). Гарантується, що до кожного міста зі столиці можна дістатися по дорогах (можливо, через інші населені пункти).
Формат вихідних даних
Виведіть у вихідний файл К пар чисел: для кожного міста повинен бути виведений його номер і мінімальний час, коли гонець може в ньому появитися (час вимірюється в хвилинах з того моменту, як гінці виїхали зі столиці). Пари у вихідному файлі мають бути впорядковані за часом прибуття гінця.
Приклад
Input.txt Output.txt
5 4 5 1 1 0
1 2 3 4 5 2 1
1 2 1 3 11
2 3 10 4 111
3 4 100 5 211
4 5 100
5 5 3 1 5 1
2 4 5 2 1
2 1 1 4 101
2 3 10
3 4 100
4 5 100
1 5 1
Буду сподіватись що на форумі є ті хто розбереться в цьому.
Задано ціле число m. Вставити між деякими цифрами 1, 2, 3, 4, 5, 6, 7, 8, 9, які записані саме в такому порядку, знаки «+» и «-» так, щоб значення отриманого виразу було число m. Наприклад, якщо m=122, то підходить вираз: 12+34-5-6+78+9. Якщо розставити знаки в такий спосіб неможливо, то повідомте про це (вивести в текстовий файл повідомлення «неможливо»).
У вхідному файлі Input.txt записане ціле число m (-10000<m<10000)
В вихідному файлі Output.txt записують отриманий вираз (в наведеному прикладі він: 12+34-5-6+78+9), або «неможливо».
буду вдячний за допомогу!!!!
Сторінки 1