Близко! Программист должен отвечать одним из двух вариантов:
1) Могу
2) Могу, но не знаю как.
Так, .... расслабились.
Сколько байт будет занимать в памяти переменная 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
Сначала прикунул в уме, потом ламерски посмотрел сайзофом. Не угадал... Покрайней мере string оказалось для меня сюрпризом.
Почему админы не любят ездить в общественном транспорте?
Цитата
... Покрайней мере string оказалось для меня сюрпризом.
Вот, вот. Ну и сколько же?
Цитата(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
AlaRic:
Цитата
Почему админы не любят ездить в общественном транспорте?
Тогда он становится пользователем. Как все!
Потому что если он поедет на общественном транспорте, то что-нибудь упадет. И придется возвращаться <_< :D
Oleg_Z
Так я прав в подсчете объема памяти под переменную или нет?
В общественном транспорте все толкаются, ругаются, а выкинуть или забанить никого нельзя
Цитата
Так я прав в подсчете объема памяти под переменную или нет?
Ну конечно!
Этот тест на новичков расчитан, в нем они могут ошибисться с подсчетом размера строки и массива!
Кстати, интересно, а кто больше раз отрубал комп своими программками? (Тем, у кого XP, это, наверное, не относится).
У меня два раза совершенно случайно получалось написать проги, которые при выполнении подвешивали систему. Вернее, три, но та прога была на BorlandС++, и не совсем моя.
Я часто отрубал свой комп - когда эксперементировал на выполнениях прерываний.
Очень большая проблемма получилась с испытанием моей проги для форматирования (помните я исходники искал), так вот я что -то не то в регистры занес, и при перезагрузке, мой хард перестал определяться.
Даже при загрузке DOS с дискеты нортон, не определял диск.
Пришлось заходить в FDISС, удалять все разделы (DEL DISC ) и снова форматировать , уже стандартной прогой.
Все данные с диска конечно ку- ку ...
(не востанавливались)
---
Совет: прежде чем лезть в прерывание $13 - почитайте доки.
Сочувствую...
А у меня в тех прогах прерываний и в помине не было. Насчёт одной я потом разобрался - я там, кажется, одним из полей записи был динамический массив, и я обращался к его элементу, забыв выделить память.
SKVOZNJAK
24.04.2004 16:19
Цитата(Atos @ 19.04.04 7:16)
Тем, у кого XP, это, наверное, не относится
Попробуй зацикленную прогу с гото - вычисление корня из пи! Прикольно сравнивать, сколько экземпляров проги потянут разные версии виндоузов.
HelpAusHeaven
25.04.2004 4:15
Цитата(UtaHSh @ 9.02.04 4:32)
>Опять про сосиску вопрос.
Это не про сосиску, это про РНР! ;)(не, ну правда две буквы: Р и Н)
И ещё пожалуй добавлю: ADA
Что-то расслабились.
Что могло быть запущено следующей инструкцией?
Код
t1.t2
А такой:
Код
t1.t2.t3
Кто перечислит
все возможный варианты, умник (умница )
BlackShadow
16.06.2004 23:18
Если "запущено", то функция или процедура.
А вообще в первом случае идёт обращение к переменной/константе/функции/процедуре/типу какогото модуля (например 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.
Где моя конфетка???
Молодец!
Какая конфетка? ээ-ээ
BlackShadow
17.06.2004 20:36
Олег, между нами, ты сам до последнего варианта додумался?
Цитата
обращение к структуре/классу/объекту в каком-либо структуре/классе/объекте.
Честно говоря, я не думал, что внутрь объекта можно запихнуть объект.
Но догадывался об этом.
А так я все варианты предусмотрел, я хотел поймать кого-нибудь на тройном входе вглубь структуры, но никто больше не ответил.
Что выведется на экран?НЕ ПОЛЬЗОВАТЬСЯ КОМПИЛЯТОРОМ!!!
Все на вашей СОВЕСТИ. ;)
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 ;) (без смайлика есессно)
Флогримм - неправда ваша
Флогримм
20.02.2005 11:27
тогда свой вариант
Мой вариант: 2... Кто больше? :D
***1 (без смайлика есессно)
интересно почему Флогги так решил?
Тут не заданы начальные параметры... а если предположить что они равны 0, то конечно ответ 2, там из кода то всего 2 строчки учавствовать будут
Если так, как написанно, то учавствуют 3 строчки.
А интерес здесь представляет переход внутрь цикла... и из него...
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'), просто не знал.
Цитата(klem4 @ 20.02.05 15:53)
PS. посмотрел чему равно ord('2') и ord ('0'), просто не знал.
Да какая разница, чему они равны?
Разность-то от этого не изменится...
Ну мне то от куда знать было.... мало-ли там чего...))))
trminator
21.02.2005 1:16
Неизвестно, что выведется: а не определено, вывод зависит от компилятора
Раз не оговариваем компилятор, значит имеем ввиду СТАНДАРТ языка Паскаль.
там все переменные обнуляются.
так что твой ответ не принят
Цитата
***1 (без смайлика есессно)
интересно почему Флогги так решил?
а вот почему... я-то ответ правильный знал с самого начала... думаю, если киты программирования (читай Volvo, mj и т.д.) ответят вторыми (после меня, имею ввиду), им будет стыдно, а зачем мне смущать таких хороших людей...
бред...
наоборот "стариков" (в хорошем смысле) программивоания пора обгонять, Флогги...
имхо они только рады будут
Олег, компиляторы паскаля от borland, обнуляют только глобальные переменные. Если мы будем использовать код в функции, то начальные значения переменных будут непредсказуемые...
trminator
21.02.2005 15:49
Цитата
Раз не оговариваем компилятор, значит имеем ввиду СТАНДАРТ языка Паскаль.
Искал в стандарте, не нашел, что переменные должны обнуляться (те документики, что я тебе недавно кидал). Смотрел только стандарт Паскаля (не Extended)
Лето - время отдыха, конкурсов и призов от форум "Все о Паскале"
вопрос.
Цитата
Примерно 40 миллионов человек на земле каждую НОЧЬ делаю ЭТО!
Некоторые занимаются ЭТИМ что бы быть ближе, некоторые, потмоу что это их работа.
что ЭТО ?
:D :P
первый правильно ответивший получает бонус - почтовый ящик на pascal.net.ru
(бонус только для зарегистрированных на форуме до 1.03.2005).
Проводят время в Интернете :D
Скорее всего чатяться или по ICQ болтают... :yes:
ребята о чем вы думаете?
о компах ночью
ну ладно, вы угадали то, что я загадывал - выходят в интернет!
xds получает почту на pascal.net.ru
Спасибо!
Только пожалуйста не xds, а мой обычный ник (в почте вроде нет ограничения на минимальную длину имени пользователя ;))
P. S. Ночью ещё можно спать...
ага, ты точно только скажи какой делать?
md@pascal.net.ru пойдет?
А мне вопрос не понравился ... причем тут работа ночью ? В интернете работа-это вообще понятие абстрактное, но если уж такое и есть, то можно ЭТИМ заниматься и ранним утром и днем и вечером ...
Клем, всем можно заниматься когда угодно, утром говорят даже интереснее
и работа в сети понятие вовсе не абстрактное!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.