|
Решения задач на Паскале!Срочно нужно!
|
|
Здравствуйте. У меня вот такая вот проблемка с 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. Проблема в том что когда я ввожу строку вида: Программа считает её комментарием и выводит:
Помогите плиз решить эту проблему. Заранее спасибо.
№ 361 | Автор: Gernsback |
2012-03-13, 16:34 | Изменено: Gernsback - Вт, 2012-03-13, 16:34
|
Репутация: [ + 0 ]
|
|
|
|
Пример ввода-вывода, напишу код
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
|
Помогите с заданиями, пожалуйста, буду признателен. Задания следующие: 1.Вводится последовательность из N целых чисел. Является ли последовательность убывающей? 2. Определить порядковый номер элемента последовательности 2 в 1 степени, 2 в 2 степени, 2 в 3 степени,..., 2 в n степени, значение которого превысит 100. P.S.: какой цикл использовать где разницы.
|
|
|
|
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
|
|
|
|
|
Спасибо конечно:-)только можно попроще а то я только в десятом классе учусь. С первым заданием я уже вроде бы понял как всё надо делать, а вот со вторым понятия не имею как делать спасибо за внимание. Плюсик нажал:-)
|
|
|
|
Ой, насчёт второго затупил) Вот код: 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
|
|
|
|
p:=round(exp(a*ln(2))); А можно эту строчку по другому записать или хотя бы объяснить её , пожалуйста)
|
|
|
|
Можно) Но тогда прийдётся делать ещё один цикл) Эта строчка возносит двойку в степень А
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
|
|
round(exp а это обязательно? как я догадываюсь (а*ln(2)) есть возведение в степень, 2 это основание а - степень, а зачем тогда round(exp?
|
|
|
|
(а*ln(2)) - это А умножить на логарифм двойки:) логарифм двойки примерно равен 0,693 так что по твоей логике - не получается:)
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
|
|
А с циклом ещё одним это как?
|
|
|
|
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
|
|
|
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
|
|
о спасибо большое выручил:-)
|
|
|
|
Обращайся ещё))
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
|
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. Так будет?
|
|
|
|
Вот так будет:
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
|
|
|
|
|
Спасибо огромное выручил:-)
|
|
|
|
Обращайся))
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
|
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.
|
|
|
|
Ну тогда попробуй в своей программе ввести: 9 9 8 7 6 5 4 3 2 1 И увидишь как она у тебя правильно работает:))
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
|