IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача со списками., Немного помощи
Rom1k
сообщение 11.04.2007 19:13
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


Данные о соотрудниках содержат фамилию и оклад.Ввести данные с клавиатуры в список записей и вывести список для премирования на экран.премия=3 окладам.

Вот что я написал.Подскажите что не правильно что надо доделать?

program zapisi;
type
pData=^Tdata;
TData=record{Tip zapisi o slugawem}
name:string[20];{imya}
oklad:longint;{oklad}
next:pdata;{Указатель на следующий элемент списка}
end;

function readdata(var rec:TData):integer;
var
s:string;{stroka vvoda}
p:integer;{nomer pozicii v stroke}
okladS:string[10];{stroka,sodergawaya oklad}
Error:inTeger;{kod owibki pri preobrazovanii stroki v 4islo}
begin
readln(s);
if s='' then
readdata:=-1
else
begin
p:=pos(' ',s);
if p = 0 then
readdata:=1
else
begin
rec.name:=copy(s,1,p-1);
delete(s,1,p);
okladS:=copy(s,1,255);
val(okladS,rec.oklad,error);
if error <> 0 then
readdata:=1
else
readdata:=0
end;
end;
end;

Var
Head:Pdata;{ukazatel' na golovu spiska}
tail:Pdata;{ukazatel' na xvost spiska}
P:PData;{ukazatel' na o4erednoi element spiska}
readresult:integer;{rezul'tat vvoda zapisi}
n:integer;{4islo slugawix}
premiya:longint;
Begin

{Vvod spiska zapisei}
writeln('Введите фамилии служащих и через пробел их оклад ');
writeln('Для окончания введите пустую строку ');
{na4al'nie ustanovki}
head:=nil;{spisok pust}
tail:=nil;{spisok pust}
n:=0;
{cikl do tex por,poka ne budet vvedena pustaya stroka}
repeat
{Цикл до тех пор, пока очередная строка не будет введена правильно}
repeat
new(p);{создать новый элемент списка}
readresult:=readdata(p^);{Ввести данные с клавиатуры и записать в новый элемент списка}
if Readresult=0 then {Если запись введена без ошибок}
{Добавить элемент в конец списка}
begin
if head=nil then
head:=p;
if tail <> nil then
tail^.next:=p;
tail:=p;
p^.next:=nil;
n:=n+1;
end
else if readresult=1 then
writeln('Ошибка! Повторите!');

{Вывод фамилий соотрудников}
writeln('Результат: ');
p:=head;
while p<>nil do
begin
writeln(p^.NAME,' ',p^.OKLAD,' ',PREMIYA);
p:=p^.next;
end;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 10)
volvo
сообщение 11.04.2007 19:17
Сообщение #2


Гость






Цитата
Подскажите что не правильно что надо доделать?
Оформить циклы (repeat/until в частности) как положено... У тебя сколько раз слово Repeat в программе встречается? Столько же раз должно упоминаться и слово until... Где эти упоминания?

Сообщение отредактировано: volvo - 11.04.2007 19:17
 К началу страницы 
+ Ответить 
Rom1k
сообщение 11.04.2007 19:19
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


И ещё!!! Я не понимаю,почему:

Изображение

Добавлено через 1 мин.
Цитата(volvo @ 11.04.2007 20:17) *

Оформить циклы (repeat/until в частности) как положено... У тебя сколько раз слово Repeat в программе встречается? Столько же раз должно упоминаться и слово until... Где эти упоминания?

я смотрел подобные программы и делал эту по образцу.там такого не встречалось!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.04.2007 19:39
Сообщение #4


Гость






Цитата
там такого не встречалось!
Да что ты? Был Repeat и не было Until? blink.gif Открой Help Паскаля, и посмотри, что говорится там...

Добавлено через 2 мин.
Цитата
И ещё!!! Я не понимаю,почему:
Где курсор установлен, может ты соизволишь сказать, или нам надо догадаться? Уж не на последней ли строке с End. ? Ну вот, я же говорил... Repeat открытый, не закрыт, и программа закончилась - что ты хочешь, чтоб сказал компилятор? Он прав... Error in statement, и ничего больше...

Сообщение отредактировано: volvo - 11.04.2007 19:45
 К началу страницы 
+ Ответить 
Rom1k
сообщение 11.04.2007 20:10
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


а ну всё.я нашёл все ошибки.можете удалять тему.спасибо за помощь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rom1k
сообщение 12.04.2007 21:16
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


а ещё вопрос.мне надо вывести элементы списка,расположенные в порядке возрастания оклада.то есть отсортировать? и как кста? помогите!

Добавлено через 16 мин.
помогите плизззззззззззззззззз!!!!!!!!!!!!!!!!!!!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 12.04.2007 21:54
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Цитата
то есть отсортировать? и как кста?

Да. Можно методом пузырька.

Сообщение отредактировано: Айра - 12.04.2007 21:54
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rom1k
сообщение 12.04.2007 21:59
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


я понимаю,что можно,но когда я пытаюсь это сделать,то у меня не получается.напишите плиз сортировку для этой проги?или хотяб объясните,как?!

Добавлено через 10 мин.
блииииииинннннннннн.ну скажите,плиззззззззз!!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 12.04.2007 22:14
Сообщение #9


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


может, покажешь, что у тебя не получается?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rom1k
сообщение 12.04.2007 22:21
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


ну вот.я пишу

for i:=1 to n-1 do
for j:=1 to n-i do
if p^[i].okjad ......

но он сразу выписывает мне ошибку,а по другому,я не знаю,как делать((((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rom1k
сообщение 12.04.2007 22:48
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


неужели никто не знает?!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"