Помощь - Поиск - Пользователи - Календарь
Полная версия: Блиц-опрос!
Форум «Всё о Паскале» > Другое > Свободное общение
Страницы: 1, 2, 3
Atos
Близко! Программист должен отвечать одним из двух вариантов:
1) Могу
2) Могу, но не знаю как.
Altair
Так, .... расслабились.
Сколько байт будет занимать в памяти переменная a?
Код


type
_A = record
     name: string;
     matrix: array[1..2] of array[1..2] of string[5];
     zopa: longint;
     lol: comp
    end
var
a:array[0..2] of _a


Кто первый даст ПРАВИЛЬНЫЙ ответ - хороший мальчик (хорошая девочка) :D
Atos
Сначала прикунул в уме, потом ламерски посмотрел сайзофом. Не угадал... Покрайней мере string оказалось для меня сюрпризом.
AlaRic
Почему админы не любят ездить в общественном транспорте? smile.gif
Altair
Цитата
... Покрайней мере string оказалось для меня сюрпризом.

Вот, вот. Ну и сколько же?
APAL
Цитата(Oleg_Z @ 12.04.04 17:18)
Код

type
_A = record
     name: string;
     matrix: array[1..2] of array[1..2] of string[5];
     zopa: longint;
     lol: comp
    end
var
a:array[0..2] of _a


3*(256+4*(5+1)+4+8)=3*292=876
Altair
AlaRic:
Цитата
Почему админы не любят ездить в общественном транспорте? 

Тогда он становится пользователем. Как все!
UtaH
Потому что если он поедет на общественном транспорте, то что-нибудь упадет. И придется возвращаться <_< :D
APAL
Oleg_Z
Так я прав в подсчете объема памяти под переменную или нет?
AlaRic
В общественном транспорте все толкаются, ругаются, а выкинуть или забанить никого нельзя rolleyes.gif
Altair
Цитата
Так я прав в подсчете объема памяти под переменную или нет?

Ну конечно!
Этот тест на новичков расчитан, в нем они могут ошибисться с подсчетом размера строки и массива!
Atos
Кстати, интересно, а кто больше раз отрубал комп своими программками? (Тем, у кого XP, это, наверное, не относится).
У меня два раза совершенно случайно получалось написать проги, которые при выполнении подвешивали систему. Вернее, три, но та прога была на BorlandС++, и не совсем моя.
Altair
Я часто отрубал свой комп - когда эксперементировал на выполнениях прерываний.
Очень большая проблемма получилась с испытанием моей проги для форматирования (помните я исходники искал), так вот я что -то не то в регистры занес, и при перезагрузке, мой хард перестал определяться.
Даже при загрузке DOS с дискеты нортон, не определял диск.
Пришлось заходить в FDISС, удалять все разделы (DEL DISC ) и снова форматировать , уже стандартной прогой. sad.gif Все данные с диска конечно ку- ку ... sad.gif (не востанавливались)
---
Совет: прежде чем лезть в прерывание $13 - почитайте доки.
Atos
Сочувствую... huh.gif А у меня в тех прогах прерываний и в помине не было. Насчёт одной я потом разобрался - я там, кажется, одним из полей записи был динамический массив, и я обращался к его элементу, забыв выделить память.
SKVOZNJAK
Цитата(Atos @ 19.04.04 7:16)
Тем, у кого XP, это, наверное, не относится

Попробуй зацикленную прогу с гото - вычисление корня из пи! Прикольно сравнивать, сколько экземпляров проги потянут разные версии виндоузов.
HelpAusHeaven
Цитата(UtaHSh @ 9.02.04 4:32)
>Опять про сосиску вопрос.
Это не про сосиску, это про РНР! ;)(не, ну правда две буквы: Р и Н)

И ещё пожалуй добавлю: ADA
Altair
Что-то расслабились.
Что могло быть запущено следующей инструкцией?
Код

t1.t2

А такой:
Код

t1.t2.t3

Кто перечислит все возможный варианты, умник (умница ) smile.gif
BlackShadow
Если "запущено", то функция или процедура.
А вообще в первом случае идёт обращение к переменной/константе/функции/процедуре/типу какогото модуля (например System.Abs(x)) или же к элементу класса (возможно статическому)/записи/объекта.
Во втором случае тоже самое: обращение к элменту класса/переменной-записи/переменной-объекту из некоего модуля t1 либо обращение к структуре/классу/объекту в каком-либо структуре/классе/объекте.
Бредово звучит.
Я лучше на примерах.
1)
Код

x:=System.Abs(x); {Те же t1.t2, только буквы другие...}
------------------------------
Type
 r=Record
   t1:Integer;
 End;
Var
 t1:r;
Begin
 t1.t1:=1
End.
-------------------------------
Type
 r=Object
   t2:Integer;
 End;
Var
 t1:r;

Begin
 t1.t2:=1
End.
-------------------------
Type
 r=Object
   Procedure t2;
 End;
Var
 t1:r;

Begin
 t1.t2
End.
----------------------------
Type
 r=Class {Варианты с полем и методом демонстрировать не буду - аналогичны предыдущим}
   property t2:Intger ...;
 End;

var
 t1:r;
Begin
 t1:=r.Create;
 t1.t2:=1
End.
---------------------------------------------
{Либо так}
Type
 t1=Class
   class procedure t2;
 End;

Begin
 t1.t2
End.

2) А я уже над первым запарился...
Код

Unit t1;

Interface

type
 r = class
   procedure t3;{Аналогично для полей записей и методов объектов}
 End;

Var
 t2:t1;
....

Uses t1;
Begin
 t1.t2.t3
End;
-------------------------------------------------------
Unit t1;

Interface

type
 t2 = class
   class procedure t3;
 End;
.....

Uses t1;

Begin
 t1.t2.t3
End.
-----------------------------
{Теперь без модулей}
Type
 r=Record
   t3:Byte;{Аналогично, если r - класс/объект с public полем t3}
 End;
 rr=Record
   t2:r{См. выше - rr - что угодно, лишь бы t2 public}
 End;

Var
 t1:r;

Begin
 t1.t2.t3:=1
End.
------------------------------------------
А вот самый интригующий вариант:
Type
 r=class
   t3:Function:Integer;
 End;
 rr=class
   Function t2:r;
 End;

Var
 t1:rr;
 x:Integer;

Begin
 t1:=t1.Create;
 x:=t1.t2.t3
End.




Где моя конфетка??? smile.gif
Altair
Молодец! smile.gif
Какая конфетка? ээ-ээ rolleyes.gif
BlackShadow
Олег, между нами, ты сам до последнего варианта додумался?
Altair
Цитата
обращение к структуре/классу/объекту в каком-либо структуре/классе/объекте.

Честно говоря, я не думал, что внутрь объекта можно запихнуть объект.
Но догадывался об этом.
А так я все варианты предусмотрел, я хотел поймать кого-нибудь на тройном входе вглубь структуры, но никто больше не ответил. sad.gif
Altair
Что выведется на экран?

НЕ ПОЛЬЗОВАТЬСЯ КОМПИЛЯТОРОМ!!!

Все на вашей СОВЕСТИ. ;)

var i,a:integer;
label 1,2,3,0;
begin
3: inc(a,ord('2')-ord('0')); goto 1;
2: for i:=1 to 20 do begin
1: If i=0 then a:=a+i; end; goto 0;
0: if i=0 then goto 2; writeln(a);
end.
Флогримм
1 ;) (без смайлика есессно)
volvo
Флогримм - неправда ваша smile.gif
Флогримм
тогда свой вариант smile.gif
volvo
Мой вариант: 2... Кто больше? :D
Altair
***1 (без смайлика есессно)
интересно почему Флогги так решил? smile.gif
mj
Тут не заданы начальные параметры... а если предположить что они равны 0, то конечно ответ 2, там из кода то всего 2 строчки учавствовать будут smile.gif
Altair
Если так, как написанно, то учавствуют 3 строчки.
А интерес здесь представляет переход внутрь цикла... и из него...
klem4
a=0;
3: inc(a,ord('2')-ord('0')); goto 1;
ord('2')=50 , ord('0')=48 =>=1 => a=2;

goto 1
if i=0 (да) then a:=a+i=> a=2; (i до сих пор равно нулю.)
goto 0;
=>
if i=0 (да) goto 2 + ВЫВОД (а=)2.

Ответ : Вывод числа 2.

Дальше цикл выполнятся не будет. так как for i:=1 to 20 ... if i=0...
PS. посмотрел чему равно ord('2') и ord ('0'), просто не знал.
volvo
Цитата(klem4 @ 20.02.05 15:53)
PS. посмотрел чему равно ord('2') и ord ('0'), просто не знал.

Да какая разница, чему они равны? smile.gif Разность-то от этого не изменится...
klem4
Ну мне то от куда знать было.... мало-ли там чего...))))
trminator
Неизвестно, что выведется: а не определено, вывод зависит от компилятора
Altair
Раз не оговариваем компилятор, значит имеем ввиду СТАНДАРТ языка Паскаль.
там все переменные обнуляются.
так что твой ответ не принят smile.gif
Флогримм
Цитата
***1 (без смайлика есессно)
интересно почему Флогги так решил?

а вот почему... я-то ответ правильный знал с самого начала... думаю, если киты программирования (читай Volvo, mj и т.д.) ответят вторыми (после меня, имею ввиду), им будет стыдно, а зачем мне смущать таких хороших людей... smile.gif smile.gif

smile.gif
smile.gif
Altair
бред...
наоборот "стариков" (в хорошем смысле) программивоания пора обгонять, Флогги...
имхо они только рады будут smile.gif
mj
Олег, компиляторы паскаля от borland, обнуляют только глобальные переменные. Если мы будем использовать код в функции, то начальные значения переменных будут непредсказуемые...
trminator
Цитата
Раз не оговариваем компилятор, значит имеем ввиду СТАНДАРТ языка Паскаль.

Искал в стандарте, не нашел, что переменные должны обнуляться (те документики, что я тебе недавно кидал). Смотрел только стандарт Паскаля (не Extended)
Altair
Лето - время отдыха, конкурсов и призов от форум "Все о Паскале" smile.gif
вопрос.

Цитата
Примерно 40 миллионов человек на земле каждую НОЧЬ делаю ЭТО!
Некоторые занимаются ЭТИМ что бы быть ближе, некоторые, потмоу что это их работа.
что ЭТО ?


lol.gif :D :P
первый правильно ответивший получает бонус - почтовый ящик на pascal.net.ru
smile.gif

(бонус только для зарегистрированных на форуме до 1.03.2005).
xds
Проводят время в Интернете :D
hiv
Скорее всего чатяться или по ICQ болтают... :yes:
Altair
ребята о чем вы думаете? smile.gif о компах ночью lol.gif
smile.gif
ну ладно, вы угадали то, что я загадывал - выходят в интернет!
xds получает почту на pascal.net.ru
xds
Спасибо! lol.gif Только пожалуйста не xds, а мой обычный ник (в почте вроде нет ограничения на минимальную длину имени пользователя ;))

P. S. Ночью ещё можно спать...
Altair
ага, ты точно только скажи какой делать?
md@pascal.net.ru пойдет?
xds
Accepted.
klem4
А мне вопрос не понравился ... причем тут работа ночью ? В интернете работа-это вообще понятие абстрактное, но если уж такое и есть, то можно ЭТИМ заниматься и ранним утром и днем и вечером ...
hiv
И ЭТИМ тоже! :yes:
Altair
Клем, всем можно заниматься когда угодно, утром говорят даже интереснее lol.gif
smile.gif и работа в сети понятие вовсе не абстрактное!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.