Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2013, 01:41   #1
Skipper Ok
Пользователь
 
Аватар для Skipper Ok
 
Регистрация: 08.11.2013
Сообщений: 23
По умолчанию Строковый тип. Паскаль.

Мои наработки: (что-то тут не так...исправьте пожалуйста.)
Код:
Program pscr;
type
rip=^guf;
guf=record
ch: char;
next: rip;
end;
var
s: rip;
l: string;
i: integer;
procedure addtostack (lit: char);
var w: rip;
begin
new (w);
w^.ch:=lit;
w^.next:=s;
s:=w;
end;
procedure finish;
var
w: rip;
begin
if s=nil then writeln ('Строка правильная')

else writeln ('Строка неправильная');
end;
begin
writeln ('Введите строку');
readln (l);
s:=nil;
for i=1 to lenght(l) do
begin
if l[i]:=['{', '}', '[', ']', '(', ')', ' ']
then do
if l(i):=['{', '[', '('] then
addtostack (l[i]) else
correct (l[i]);
end;
else writeln ('Строка неправильная');
end;
finish;
readln;
end.
Изображения
Тип файла: jpg 9lH4Ho70uDg.jpg (73.4 Кб, 141 просмотров)
Тип файла: jpg g1i6X6JO8GA.jpg (105.9 Кб, 130 просмотров)

Последний раз редактировалось Skipper Ok; 10.12.2013 в 01:44.
Skipper Ok вне форума Ответить с цитированием
Старый 10.12.2013, 06:59   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Ну.. Начать нужно с того, что Ваш стек - не стек.. Он больше похож на списки..
Дальше идет пара косяков с присваиванием в условиях и обращение к I-тому элементу строки используя ()

Код:
Program pscr;
type
	rip=^guf;
	guf=record
		ch: char;
		next: rip;
	end;

var
	s: rip;
	l: string;
	i: integer;

procedure addtostack (lit: char);
var 
	w: rip;
begin
	new (w);
	w^.ch:=lit;
	w^.next:=s;
	s:=w
end;

procedure finish;
var
	w: rip;

begin
	if s=nil then writeln ('Строка правильная')
	else writeln ('Строка неправильная')
end;

begin

	writeln ('Введите строку');
	readln (l);
	s:=nil;
	for i=1 to lenght(l) do
	begin
		if l[i]in['{', '}', '[', ']', '(', ')', ' ']
		then begin
			if l[i] in['{', '[', '('] then
			addtostack (l[i]) else
			correct (l[i]);
		end;
		else Break
	end;
	finish;
	readln;
end.
Но, всё же лучше переделать в стек!
Poma][a вне форума Ответить с цитированием
Старый 10.12.2013, 20:13   #3
Skipper Ok
Пользователь
 
Аватар для Skipper Ok
 
Регистрация: 08.11.2013
Сообщений: 23
По умолчанию

Программа не работает... что значит строчка
Код:
correct (l[i])
Skipper Ok вне форума Ответить с цитированием
Старый 10.12.2013, 20:14   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Программа не работает
Как странно..
Цитата:
что значит строчка
Эх.. оказывается тот код писали не Вы..
Poma][a вне форума Ответить с цитированием
Старый 10.12.2013, 20:16   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
что значит строчка
Действительно. Что это за строчка?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строковый тип переменной.Паскаль Марина22 Помощь студентам 1 19.09.2013 18:12
Паскаль. Две задачки на строковый тип данных. Татьяна9871 Помощь студентам 6 01.02.2012 14:12
Строковый тип данных. (Паскаль) Pavel_4a-4anax Помощь студентам 6 06.04.2011 15:47
Строковый тип данных(Паскаль) Лилля Помощь студентам 4 25.11.2010 21:08