Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Экзамен по Паскалю


Автор: Neo007 24.4.2006, 17:02
Такое дело: на этой неделе экзамен намечаеться по паскалю. И я вроде бы всё разобрал, тока вот с массивами у меня каша выходит...с двумерными.
На экзамене типо должно быть задание такое: дана программа состоящая из двумерных массивов, и кучи циклов. И я должен нарисовать картинку которая получиться. 
Подскажите какие нибудь примеры на которых можно потренироваться. Или же ссылку на сайт где есть такие задания.
И ещё такой вопрос: если у меня дана такая прога:
Код
var i, j, k, m, s      :integer;
label CASEPOINT;
begin
k:=17;
m:=k mod 3; //<-----эта запись означает что надо делить 17 на 3 без остатка?
CASEPOINT: case m of
2, 5 : begin m:=m+10; S:=0; goto CASEPOINT end; //<----- запись 2,5 означает что если у меня m не равно 2 или 5 то я пропускаю эту строчку?
1, 10: begin m:=m+15; S:=10; end; //<----- запись 1,10 означает что если у меня m не равно 1 или 10 то я пропускаю эту строчку?

else begin m:=m-2; goto CASEPOINT; end;
end;
writeln( 'm=', m, ' S=', S);
i:=10; S:=0;
for j:=1 to 5 do
begin
    if i>5 then i:=i+2 else i:=i+1;
    for k:=1 to 5 do
    begin
    i:=i+3;
    S:=S-1;
    end;
end;
writeln( 'i=', i, ' S=', S);
end.


Я правильно всё понял? обьясните если нет...и если можно похожие задачки привидите. Хочу потренироваться.     

Автор: Snowy 24.4.2006, 17:21
Цитата(Neo007 @  24.4.2006,  17:02 Найти цитируемый пост)
m:=k mod 3; //<-----эта запись означает что надо делить 17 на 3 без остатка?
Это означает, что ты получаешь остаток от деления на 3

Цитата(Neo007 @  24.4.2006,  17:02 Найти цитируемый пост)
2, 5 : begin m:=m+10; S:=0; goto CASEPOINT end; //<----- запись 2,5 означает что если у меня m не равно 2 или 5 то я пропускаю эту
Правильнее сказать наоборот: если у тебя m = 2 или 5, то строчка выполняется.
Хотя остаток от деления не может быть равен 5.

Цитата(Neo007 @  24.4.2006,  17:02 Найти цитируемый пост)
1, 10: begin m:=m+15; S:=10; end; //<----- запись 1,10 означает что если у меня m не равно 1 или 10 то я пропускаю эту строчку?
Аналогично предыдущей.
Опять же - остаток от деления не бывает 10.

Цитата(Neo007 @  24.4.2006,  17:02 Найти цитируемый пост)
else begin m:=m-2; goto CASEPOINT; end;
Это вас в школе учат использовать goto?
Если хочешь стать программистом, забудь goto, как страшный сон. Учись строить грамотные конструкции. 

Автор: Neo007 24.4.2006, 19:06
Спасибо за совет. 
И если кто может дайте ссылку где можно попрактиковаться с двумерными массивами. 
Или приведите задачку в пример. 

Автор: karataev 27.4.2006, 01:59
Можешь попрактиковаться вообще с решением разных задач, распределенных по темам, тут: http://fformula.net 

Автор: rena 8.5.2006, 17:50
 smile нужно найти количество  прямоугольников в двумерном массиве
Пример 
### . . .?? . .+.
### .= .?? . .+.
### . . . . . . .+.
 . . . . .??? . . . .
??? . . . . . . .==
??? . . .#### ..
ответ : # прямоугольников :2
? прямоугольников :3
+ прямоугольников :1
= прямоугольников :2 

Автор: Palladin 22.6.2006, 06:34
Цитата(rena @ 8.5.2006,  17:50)
smile нужно найти количество  прямоугольников в двумерном массиве
Пример 
### . . .?? . .+.
### .= .?? . .+.
### . . . . . . .+.
 . . . . .??? . . . .
??? . . . . . . .==
??? . . .#### ..
ответ : # прямоугольников :2
? прямоугольников :3
+ прямоугольников :1
= прямоугольников :2

Ну и что здесь сложного??? или задачу эту решать ненадо???? smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)