| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
Блок операторов.
-----------------------------------------------------------------
И Паскаль, и Си поддерживают концепцию блока (группы опера-
торов, которая может быть помещена в любое место как один опера-
тор). В Паскале блок имеет вид:
begin <операт.>; <операт.>; ... <операт.> end;
А в Cи принята форма:
{ <операт.>; <операт.>; ... <операт.>; }
Эти две формы очень похожи, но имеют два важных отличия:
- В Паскале вы не должны ставить точку с запятой за послед-
ним оператором, а в Си должны.
- В Си вы никогда не ставите точку с запятой после фигурной
скобки (}); в Паскале должны поставить.
Выполнение по условию.
-----------------------------------------------------------------
Как Паскаль, так и Си поддерживают две конструкции выполне-
ния по условию: оператор if/then/else и оператор case.
if/then/else очень прост в обоих языках
if <булево выраж> if(<выраж.>)
then <оператор> <оператор>;
else <оператор> else <оператор.>;
И в Паскале, и в Си else (иначе) - необязательная часть, а
<оператор> может быть заменен блоком как ранее описано. Однако
имеется несколько важных различий:
- В Си <выраж> не обязано быть булевским, оно может возвра-
щать любое нулевое или ненулевое значение, причем ноль рассматри-
вается как false (ложь), а не ноль - как true (истина).
- В Си <выраж.> должно быть заключено в круглые скобки.
- 103,104 -
- В Си отсутствует then.
- В Си после оператора обязательно требуется точка с запя-
той, естественно за исключением случая, когда там стоит блок.
Приведем несколько примеров на Паскале и на Си:
Турбо Паскаль Турбо Си
----------------------------------------------------------------
if B = 0 then if (B==0)
Writeln('C is undefined') puts("c is undefined");
else begin else {
C := A div B; c = a/b;
Writeln('C = ',C) printf("c = %d\n",c);
end; }
C := A * B;
if C < > 0 if ((c = a * b) != 0)
then C := C + B c += b;
else C := A else
c = a;
----------------------------------------------------------------
- 105,106 -
Оператор case также реализован в обоих языках (в Си он из-
вестен, как оператор switch),но имеются некоторые важные отличия.
Общий формат операторов следующий:
Турбо Паскаль Турбо Си
----------------------------------------------------------------
case <выраж> of switch (<выраж>) {
<список> : <оператор>; case <элем.> : <операторы>
<список> : <оператор>; case <элем.> : <операторы>
... ...
<список> : <оператор>; case <элем.> : <операторы>
else <операторы> default : <операторы>
end; }
----------------------------------------------------------------
Кроме изменений в синтаксисе, имеются и серъезные различия.
Во-первых, в Паскале, <список> может быть списком значений:
на Турбо Паскале, это может быть диапазон (А...Z). В Си <элем.> -
всегда одно значение.В обоих языках вы ограничены в выборе типа
значения, которое вычисляется в <выраж>. Оно должно быть целого,
символьного или перечислимого типа.
Во-вторых (и это очень важно) в Паскале, <оператор> - это
одиночный оператор или блок; после его выполнения, все следующие
операторы пропускаются. В Си, <операторы> состоят из нулевого или
большего числа операторов, разделенных точкой с запятой. Однако,
после выполнения их, управление не передается в конец switch;
вместо этого, продолжается выполнение списка операторов до тех
пор, пока не встретится оператор break. Тогда и только тогда ос-
тальные операторы будут пропущены. Это позволяет понимать каждый
case <элем.>, как метку, на которую передается управление в слу-
чае, когда <выражение> оператора switch принимает значение
<элем.>.
- 107,108 -
Турбо Паскаль Турбо Си
----------------------------------------------------------------
case Ch of switch (ch)
{
'С' : DoCompile; case 'C' : DoCompile(); break;
'R' : begin case 'R' :
if not Compiled if (!compiled)
then DoCompile; DoCompile();
RunProgram RunProgram();
end; break;
'S' : SaveFile; case 'S' : SaveFile(); break;
'E' : EditFile; case 'E' : EditFile(); break;
'Q' : begin case 'Q' :
if not Saved if (! saved)
then SaveFile SaveFile();
end; break;
end; }
case Today of switch (today)
{
Mon..Fri : Writeln('go work!'); case Mon :
Sat, Sun : begin case Tue :
if Today = Sat then begin case Wed :
Write('clean the yard'); case Thur:
Write(' and ') case Fri :puts("go work!");
break;
end; case Sat :printf("%s","clean"
" the yard and ");
Writeln('relax!') case Sun :puts("relax!");
end
end; }
-----------------------------------------------------------------
Примечания по второму примеру. Запись - сase <элем.> (часть
оператора switch) в любом случае должна быть написана. Части case
от Mon до Thur имеют пустую часть <операторы> и управление пере-
ходит далее пока не встретится метка case Fri:. Оператор break
передает управление в конец оператора switch. Однако, в конце не-
дели программа будет работать по другому:метка case Sat: заставит
выполниться printf, после чего управление перейдет к оператору
puts.
- 109,110 -
Циклы (итерации).
-----------------------------------------------------------------
В Си, так же как в Паскале, есть 3 типа циклов: while,
do...while и for, которые соответствуют трем конструкциям Паска-
ля: while, repeat...until, for.
|
adfun.ru
|
|
|
|