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

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

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

> комбинированные типы. операторы присоединения.
ducky
сообщение 4.12.2010 22:34
Сообщение #1


самовнушение всегда спасает.
*

Группа: Пользователи
Сообщений: 27
Пол: Женский
Реальное имя: Анастасия

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


помогите пожалуйста из неработающей программы, работающую сделать..

program errors;
type поле = (а,b);
запись = record a:integer; b:char end;
var х,у:запись; c:char;
function f (var r:запись):запись;
var р:поле;
begin for p := a to b do f.p := succ(z.p) end;
begin read©;
with x do begin a := ord©; b := c end;
y := x; if x = у then y := f(x);
with у do writeln(a,x)
end.



--------------------
думай дважды, чтоб не пожалеть однажды.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 19.12.2010 14:24
Сообщение #2


Гость






Вот это:
Цитата
type поле = (а,b);
{ ... }
for p := a to b do f.p := succ(z.p)
- нереально (в таком виде, когда типы полей разные). Нельзя подставлять в цикле названия полей записи, и работать с ними. Можно заменить на
f.a := succ(f.a); f.b := succ(f.b)
Я ж говорю - почти полная переделка:

program errors (input,output);
type
zapis =
record
a: integer;
b: char;
end;
var
x, y: zapis; c: char;

function equal(left, right: zapis): boolean;
begin
equal := (left.a = right.a) and (left.b = right.b);
end;

procedure f(var z:zapis; var res: zapis);
begin
res.a := succ(z.a);
res.b := succ(z.b);
end;

begin
read ©;
with x do
begin
a:=ord(4); b:=c;
end;
y := x; if equal(x, y) then f(x, y);
with y do
writeln (a, ' ', x.a, ' ', x.b);
end.



Ты лучше расскажи, откуда этот бредовый код откопала? Смысл его в чем? Просто поизвращаться с записями?
 К началу страницы 
+ Ответить 

Сообщений в этой теме
ducky   комбинированные типы. операторы присоединения.   4.12.2010 22:34
Lapp   помогите пожалуйста из неработающей программы, раб...   5.12.2010 9:42
ducky   да вроде бы просто запускаться должна))   5.12.2010 12:09
Lapp   да вроде бы просто запускаться должна))А какой у т...   5.12.2010 12:43
ducky   Паскаль у меня. компилятор же там есть..   5.12.2010 13:27
Lapp   Паскаль у меня. компилятор же там есть.. н-даа.. К...   6.12.2010 1:13
Krjuger   А слова поле,записть и тд,это ваш перевод или они ...   5.12.2010 15:15
volvo   Из всех компиляторов Паскаля только Глагол (хотя э...   6.12.2010 13:34
ducky   Паскаль Турбо. русские буквы в условии были..сейч...   6.12.2010 21:36
ducky   вот..наконец-то код нормально набрала.. даже перед...   11.12.2010 23:34
volvo   if x=y then y:=f(x); Первый оператор - сравнение, ...   12.12.2010 0:00
ducky   поменяла как в первом посте..все-равно не хочет. в...   12.12.2010 0:32
volvo   А вот это уже серьезнее... Дело в том, что операци...   12.12.2010 1:06
ducky   вообщем рабочую из нее сделать почти нереально? :(   19.12.2010 13:56
volvo   Вот это: - нереально (в таком виде, когда типы пол...   19.12.2010 14:24
ducky   спасибо Вам большое - пребольшое. в книжке был зап...   19.12.2010 16:56


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

 



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