Новые сообщения · Правила  
Модератор форума: Berestovskiy  
Решения задач на Паскале!Срочно нужно!
Здравствуйте. У меня вот такая вот проблемка с Turbo Pascal
тема : ПРОГРАММИРОВАНИЕ ЗАДАЧ ОБРАБОТКИ СИМВОЛЬНЫХ ДАННЫХ
Задание:


вот что я написал

Code
Program lab10;
Const  A='{'; B='}';
          n=6;
Type mas=array[1..n] of string[70];
Var str,rez,poz:mas; i,v,x,l,p,k:byte;

Begin
Writeln('Please Enter Strings');
For i:=1 to n do begin
write('Stroka: '); Readln(str[i]); end;
For i:=1 to n do begin
l:=length(str[i]);
p:=pos(A,str[i]);
k:=pos(B,str[i]);
If (p=0) then writeln('Commenttarii otsytstvyut') else
if (p=0) and (k>=0) then writeln('Commenttarii otsytstvyut')else
begin    
rez[i]:=copy(str[i],p,k);
delete(str[i],p,k);
x:=pos(A,str[i]);
v:=pos(B,str[i]);
If x>v then begin    
poz[i]:= copy(str[i],x,v);
rez[i]:= rez[i]+poz[i];
writeln('coment:', rez[i]); end else
writeln('coment:', rez[i]);
end;
end;
end.

Проблема в том что когда я ввожу строку вида:
Quote
}text{

Программа считает её комментарием и выводит:
Quote
coment: {}


Помогите плиз решить эту проблему. Заранее спасибо.
361 | Автор: Gernsback | 2012-03-13, 16:34 | Изменено: Gernsback - Вт, 2012-03-13, 16:34   |  Репутация: [ + 0 ]
Пример ввода-вывода, напишу код

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
362 | Автор: Berestovskiy | 2012-03-13, 18:16   |  Репутация: [ + 211 ]
Помогите с заданиями, пожалуйста, буду признателен. Задания следующие:
1.Вводится последовательность из N целых чисел. Является ли последовательность убывающей?
2. Определить порядковый номер элемента последовательности 2 в 1 степени, 2 в 2 степени, 2 в 3 степени,..., 2 в n степени, значение которого превысит 100.
P.S.: какой цикл использовать где разницы.
363 | Автор: RamilX | 2012-03-14, 18:42   |  Репутация: [ + 0 ]
1.
var
a:array[1..100]of integer;
i,n:integer;
l:boolean;
begin
read(n);
l:=false;
for i:=1 to n do
read(a[i]);
for i:=1 to n-1 do
if a[i]>a[i+1] then l:=true else begin l:=false;break;end;
if l then writeln('yes') else writeln('no');
end.

2. Если нужно определить порядковый номер элемента, а не сам элемент, то:
var
n:integer;
begin
read(n);
writeln(n);
end.
------------------------------------------------------------------------------------------------
цикл for to do используется, когда известно количество действий
цикл repeat - цикл с пост условием, т.е. выполняется пока не будет выполнено условие
цикл while - цикл с пред услоием, т.е. пока выполняется условие - будет работать цикл

"Спасибо" принимается в виде повышения репутации ( Зелёный плюсик:) ).Спасибо


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
364 | Автор: Berestovskiy | 2012-03-14, 18:59   |  Репутация: [ + 211 ]
Спасибо конечно:-)только можно попроще а то я только в десятом классе учусь. С первым заданием я уже вроде бы понял как всё надо делать, а вот со вторым понятия не имею как делать спасибо за внимание. Плюсик нажал:-)
365 | Автор: RamilX | 2012-03-14, 19:27   |  Репутация: [ + 0 ]
Ой, насчёт второго затупил)
Вот код:
var
a,n,p:integer;
begin
a:=1;n:=0;
while p<100 do begin
p:=round(exp(a*ln(2)));
a:=a+1;n:=n+1;end;
writeln('Poryadkovui nomer elementa: ',n);
writeln('Element = ',p);
end.


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
366 | Автор: Berestovskiy | 2012-03-14, 19:43   |  Репутация: [ + 211 ]
p:=round(exp(a*ln(2)));
А можно эту строчку по другому записать или хотя бы объяснить её , пожалуйста)
367 | Автор: RamilX | 2012-03-14, 19:49   |  Репутация: [ + 0 ]
Можно)
Но тогда прийдётся делать ещё один цикл)
Эта строчка возносит двойку в степень А


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
368 | Автор: Berestovskiy | 2012-03-14, 19:52   |  Репутация: [ + 211 ]
round(exp а это обязательно? как я догадываюсь (а*ln(2)) есть возведение в степень, 2 это основание а - степень, а зачем тогда round(exp?
369 | Автор: RamilX | 2012-03-14, 20:05   |  Репутация: [ + 0 ]
(а*ln(2)) - это А умножить на логарифм двойки:)
логарифм двойки примерно равен 0,693
так что по твоей логике - не получается:)


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
370 | Автор: Berestovskiy | 2012-03-14, 20:08   |  Репутация: [ + 211 ]
А с циклом ещё одним это как?
371 | Автор: RamilX | 2012-03-14, 20:08   |  Репутация: [ + 0 ]
var
i,a,n:integer;
begin
read(n);
a:=2;
for i:=1 to n-1 do
a:=a*2;
writeln(a);
end.


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
372 | Автор: Berestovskiy | 2012-03-14, 20:12   |  Репутация: [ + 211 ]


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
372 | Автор: Berestovskiy | 2012-03-14, 20:12   |  Репутация: [ + 211 ]
о спасибо большое выручил:-)
373 | Автор: RamilX | 2012-03-14, 20:34   |  Репутация: [ + 0 ]
Обращайся ещё))

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
374 | Автор: Berestovskiy | 2012-03-14, 20:46   |  Репутация: [ + 211 ]
var
a,n,i:integer;
begin
a:=2;
while p<100 do begin
read(n);
for i:=1 to n-1 do
a:=a*2;
a:=a+1;n:=n+1;end;
writeln('Poryadkovui nomer
elementa: ',n);
writeln('Element = ',a);
end.
Так будет?
375 | Автор: RamilX | 2012-03-14, 20:49   |  Репутация: [ + 0 ]
Вот так будет:

var
i,q,a,n,p:integer;
begin
a:=2;
n:=1;q:=2;
while p<100 do begin
for i:=1 to q-1 do
a:=a*2;
q:=q+1;
p:=a;
a:=2;
n:=n+1;
end;
writeln(n);
writeln(p);
end.


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
376 | Автор: Berestovskiy | 2012-03-14, 21:01   |  Репутация: [ + 211 ]
Спасибо огромное выручил:-)
377 | Автор: RamilX | 2012-03-14, 21:22   |  Репутация: [ + 0 ]
Обращайся))

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
378 | Автор: Berestovskiy | 2012-03-14, 21:41   |  Репутация: [ + 211 ]
a вот первую вот так надо по-моему:
Var i,n,a,b,x:integer;
a:=b;
Writeln('введите количество чисел последовательности');
Read(n);
Writeln('вводите последовательность');
Read(a);
For i:=2 to n do
Begin
Read(a);
If a>b then a:=b
End;
If b<a then writeln('убывает') else writeln ('не убывает');
End.
379 | Автор: RamilX | 2012-03-15, 06:58   |  Репутация: [ + 0 ]
Ну тогда попробуй в своей программе ввести:
9
9 8 7 6 5 4 3 2 1
И увидишь как она у тебя правильно работает:))


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
380 | Автор: Berestovskiy | 2012-03-15, 09:44   |  Репутация: [ + 211 ]
Поиск: