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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2009, 12:10   #1
osipvs
 
Регистрация: 22.07.2009
Сообщений: 7
По умолчанию Сложности с решением задач у полного чайника

В понедельник экзамен, а этому Паскалю вообще не обучалачь даже, а нужно позарез, если можно помогите с решением следующих задач:
6.1 Для следующего описания типов переменных в динамической памяти построен линейный связанный список (nach – указатель на начало списка; последний элемент списка в адресной части имеет значение nil).
Код:
Type ptr1=^element1;
element1=record
     info : char;        link : ptr1;
end;
Var nach, tek : ptr1;     i : integer;
Что будет выведено на экран для данного фрагмента:
Код:
 tek:=nach;   for i:=1 to 3 do tek:=tek^.link;     writeln(tek^.info);
6.2 Имеется следующее описание типов переменных. Для данного описания в динамической памяти по-строен двунаправленный список (nach – указатель на начало списка; kon -указатель на конец списка).
Код:
Type ptr=^elem;
 elem=record
     info : integer;     right, left : ptr;
 end;
Var nach, kon, tek : ptr;
        i : integer;
Что будет выведено на экран в результате выполнения оператора:
Код:
writeln(nach^.right^.left^.right^.info);
3.5 . Запишите заголовок процедуры имеющей 3 аргумента имеющих тип byte (i,j,k). Изменение значения j в процедуре должно влиять на значение фактического параметра, i,j,k – вещественные переменные уд-военной точности.
6.3 В приведенном фрагменте программы nach — ссылка на первый элемент списка. Список объявлен сле-дующим образом:
Код:
Type SS = ^List;  List = record   a : char;   next : SS;   end;
Var nach, P : SS;   S : integer; 
P := nach; S := 0;     while Not(P = Nil) do begin S := S + 1; P := P^.next;  end;   writeln(S);
Что выведет программа на экран монитора?
6.4 . Что будет выведено на экран в приведенном фрагменте программы, где F — ссылка на первый эле-мент списка (на рисунке это nach). Список объявлен следующим образом:
Код:
Type Uk = ^EL;  EL = Record X : Char;   N : Uk   End;
Var   F,P,B,M : Uk;   S : Char;
             Begin     P := F;
While P^.N <> Nil Do  Begin	 B := P;   M := P;
     While B <> Nil Do Begin   If B^.X  <  M^.X Then  M := B;  B := B^.N  End;
     S := P^.X;  P^.X := M^.X;  M^.X := S;  P := P^.N
End;  P := F;   While P^.N <> Nil  Do Begin P := P^.N;  Write(P^.X);  End;
End.
4.8 Определить значение переменной s после выполнения следующих операторов:
Код:
 var   i, n : byte;   s : real;  
              s:=1; n:=1;  for i:=2 to n do  s:=s+1/i;
5.5Чему равны значения переменных i и s после окончания цикла в фрагменте программы (язык Паскаль) прохода по матрице
Код:
mas: array[1..4,1..4] of integer: s:=0;  i:=1;   while i<4 do begin  i:=i+1;  s:=s+mas[i][i];end ;
1234
2341
8471
5 1 7 9

Рисунки во вложении. Заранее благодарна
Вложения
Тип файла: doc вложение.doc (20.5 Кб, 17 просмотров)

Последний раз редактировалось Stilet; 22.07.2009 в 12:16.
osipvs вне форума Ответить с цитированием
Старый 22.07.2009, 12:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Что будет выведено на экран для данного фрагмента:
Символ в третьем элементе. Но это не код а сплошная шуба для багов.
Цитата:
6.2
То же что и
Код:
writeln(nach^.right^.info);
Цитата:
3.5 . Запишите заголовок процедуры имеющей 3 аргумента имеющих тип byte (i,j,k).
Код:
Procedure(i,k:byte;var j:double);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.07.2009, 13:46   #3
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

6.3 Количество элементов в списке, тоесть 5
5.5 i=4 s=11
4.8 s=1
Всякое безобразие должно быть единообразным. Тогда это называется порядком.

Последний раз редактировалось Anatole; 22.07.2009 в 14:00.
Anatole вне форума Ответить с цитированием
Старый 22.07.2009, 13:56   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
6.1
tek:=nach; for i:=1 to 3 do tek:=tek^.link; writeln(tek^.info);
на мой взгляд.
сначала tek показывает на первый элемент в списке.
потом ТРИ раза переходим на следующий...
в результате, после цикла tek показывает на 4-й элемент.
TEK^.info это значение ЧЕТВЁРТОГО элемента списка.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.07.2009, 14:40   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
это значение ЧЕТВЁРТОГО элемента списка.
Согласен. Я с нуля считал )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.07.2009, 17:22   #6
osipvs
 
Регистрация: 22.07.2009
Сообщений: 7
По умолчанию

Спасибо огромное. Вы даже не представляете, что это для меня значит. Если это не совсем наглость вот еще последние задачи:
6. 5 Определить значение переменной s после выполнения следующих операторов:
Код:
 var   i, j, s : integer;  
              s:=-5;  for i:=0  to 20 do   for j:=i  to  4 do  if   i = j  then s:=s+i;

7.5 Пусть имеется следующее описание типов переменных. Для данного описания в динамической памяти построен линейный связанный список (nach – указатель на начало списка; последний элемент списка в адресной части имеет значение nil):
Код:
Type ptr1=^element1;
element1=record    info : char;   link : ptr1;   end; 
Var nach,tek : ptr1;    i : integer;
Что будет выведено на экран в результате выполнения следующего фрагмента программы:
tek:=nach;     while tek^.info<>'c' do tek:=tek^.link;    writeln(tek^.link^.info);
5. 6 В программе вводится строка символов (цифр и букв). Фрагмент алгоритма подсчитывает сумму цифр в строке. Запишите оператор, который должен быть вставлен на место символов ?.
Код:
  Var St : string;    s,i,d,k : integer;
begin
   readln(St); s := 0; for i := 1 to Length (St) do
   begin val(St[i], d, k);    ??????????????????????   end;  writeln(s);
end.
6. 6 Имеется следующее описание типов переменных. Для данного описания в динамической памяти построен двунаправленный список (nach – указатель на начало списка; kon -указатель на конец списка).
Код:
Type ptr=^element;
element=record   info : char;   right, left : ptr;   end;
Var nach,kon,tek: ptr;
       i:integer;
Что будет выведено на экран в результате выполнения оператора:
Код:
 writeln(kon^.left^.left^.right^.left^.info);
7.6 Что будет выведено на экран монитора в результате выполнения данного фрагмент кода:
Код:
 var i,a: byte;
             ms: array[1..6] of byte: 
содержимое массива  ms:              2 3 4 1 8 3.
             a:=ms[1];    for i:=2 to 5 do if ms[i]<a then a:=ms[i]; writeln('a=',a);

5.7 Вычислите значение R после выполнения операции присваивания при
Код:
 A:= False; B:= False; X:= 3; Y:= 2;              	R := Not (A Or B Or (X > 2) And (Y < 0));
6.7 Для приведенного ниже описания в динамической памяти построен двунаправленный список (nach – указатель на начало списка; kon -указатель на конец списка):
Код:
Type ptr=^element;
element=record
   info : integer;   right,left : ptr;
end;
Var nach,kon,tek : ptr;
       i:integer;
Что будет выведено на экран в результате выполнения оператора:
writeln(nach^.right^.right^.right^.info);

7. 7 Что будет выведено на экран монитора в результате выполнения данного фрагмент кода:
Код:
var  a,b: integer;  begin   a=25; b=52; a:=a+b;  b:=a-b;  a:=a-b; writeln('a=',a,' b=',b); end;
8.8 Вычислить результат вызова функции fun(4) описанной ниже:
Код:
  function fun(n:byte):byte;         
              begin  if n<=1 then fun:=1 else fun:=fun(n-1)+fun(n-2);  end;
Рисунки к 6.6 и 6.7 теже, что и к 6.2
Еще раз спасибо.

From Stilet: Наглость твоя в том что ты не оформляешь свой пост читабельно. Код выдеяй особым предназначенным для того тегом по кнопке #

Последний раз редактировалось Stilet; 23.07.2009 в 08:12.
osipvs вне форума Ответить с цитированием
Старый 23.07.2009, 16:44   #7
osipvs
 
Регистрация: 22.07.2009
Сообщений: 7
По умолчанию

Извините, не знала что нужно так делать, исправлюсь. Только помогите пожалуйста.
osipvs вне форума Ответить с цитированием
Старый 24.07.2009, 13:58   #8
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

8.8 результат выполнения (из Turbo Pascal) 5
7.7 a=52 b=25
5.7 R=true
7.6 a=1
6.6 s=5
5.6 if k=0 then s:=s+d;
Всякое безобразие должно быть единообразным. Тогда это называется порядком.

Последний раз редактировалось Anatole; 24.07.2009 в 14:12.
Anatole вне форума Ответить с цитированием
Старый 24.07.2009, 22:06   #9
osipvs
 
Регистрация: 22.07.2009
Сообщений: 7
По умолчанию

Спасибо огромное за помощь.

Огромнейшее спасибо!!!!!! Поступила. УРА!!!!!! И с вашей большой помощью. Еще раз спасибо!!!!!!!!!!!

Последний раз редактировалось Stilet; 31.07.2009 в 17:16.
osipvs вне форума Ответить с цитированием
Старый 31.07.2009, 17:17   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Поздравляю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, с решением задач. Vampiressa Помощь студентам 3 06.03.2014 19:42
Помогите с решением задач. oblachko Паскаль, Turbo Pascal, PascalABC.NET 4 17.12.2008 19:45
помощь с решением следующих задач BR@BUS Паскаль, Turbo Pascal, PascalABC.NET 13 20.01.2008 00:58