если кто решит - пришлите плиз на fillerm93@mail.ru
Если кто-то все же решится написать, то имейте в виду, что чем проще прога тем лучше. И в идеале с комментами с какими-нибудь.....
Всем кто поможет - от меня причитается.
Кстати если кто знает ответ на теор вопрос - тоже пришлите...
Дай Филе, пусть попробует переписать на Паскаль...
А лучше так:
да ты сбрендил что-ли? Он если на паскале написать и то не поймет и не сможет объяснить, а ты перепиши...
Списки:
program prog;
type
node_ptr = ^list_node;
list_node = record{Объявили запись элемента списка}
prev, next:node_ptr;{Указатели на предыдущий и последующий элементы}
data:integer;{Данные элемента списка}
end;
procedure add_node( var start: node_ptr; data: integer; position: integer);
var
node,ptr: node_ptr;
idx: integer;
begin
new(node);
node^.prev := nil;
node^.next := nil;
node^.data := data;
if(position > 0) then{проверяем, что номер узла существует}
begin
if(start = nil) then{если список пустой, то создаем его заново}
begin
start := node;
end
else if(position = 1) then
begin
node^.next := start;{ставим узел в начало списка}
start^.prev := node;
start := node;
end
else
begin
ptr := start;
idx := 2;
while (idx<position) and (ptr^.next <> nil) do{ищем узел с
заданным номером или последний узел}
begin
inc(idx);
ptr := ptr^.next;
end;
node^.next := ptr^.next;
ptr^.next := node;
node^.prev := ptr;{добавляем узел после заданного}
if( node^.next <> nil ) then
begin
node^.next^.prev := node;
end;
end;
end;
end;
procedure print_list( start: node_ptr);
begin
write( '[');
while( start <> nil ) do
begin
write( start^.data, ' ');
start := start^.next;
end;
writeln( ']');
end;
var
ptr: node_ptr;
begin
ptr := nil;
add_node( ptr, 1, 1);
print_list( ptr );
add_node( ptr, 7, 1);
add_node( ptr, 8, 2);
add_node( ptr, 13, 5);
print_list( ptr );
end.
Нужная процедура - add_node.
Задача 13.1
type
{определяем тип входного файла}
intype = record
sLastName:String;
iCourse:integer;
iaMarks: array[1..5]of integer;
end;
{определяем тип выходного файла}
outtype = record
sLastName:String;
iCourse:integer;
iEMark:integer;
end;
var
ts:String;
i:integer;
inElement:intype;
outElement:outtype;
outFile:file of outtype;
inFile:file of intype;
begin
{открываем и нициализируем для чтения входной файл}
assign(inFile,'inFile.bin');
reset(inFile);
{открываем и инициализируем для записи выходной файл}
assign(outFile,'outFile.bin');
rewrite(outFile);
while not EOF(inFile) do
begin
read(inFile,inElement);
Writeln('Считано:');
writeln('Фамилия: ',inElement.sLastName,', Курс: ',inElement.iCourse,
', Оценки: ',inElement.iaMArks[1],',',inElement.iaMArks[2],',',
inElement.iaMArks[3],',',inElement.iaMArks[4],',' ,
inElement.iaMArks[5]) ;
outElement.sLastName:=inElement.sLastName;
outElement.iCourse:=inElement.iCourse;
for i:=1 to 5 do
begin
outElement.iEMark:=outElement.iEMark+inElement.iaMArks[i];
end;
outElement.iEMark:=outElement.iEMark div 5;
Writeln('Записано:');
writeln('Фамилия: ',outElement.sLastName,', Курс: ',outElement.iCourse,
', Средняя оценка: ',outElement.iEMArk) ;
write(outFile,outElement);
end;
close (outFile);
close(inFile);
readln(ts);end.
Всем, кто откликнулся, огромное спасибо!
... если бы это еще помогло ....
Спасибо всем огромное за помощь, зачёт я в итоге сдал. Спасибо!!!
Форум Invision Power Board (http://nulled.ws)
© Invision Power Services (http://nulled.ws)