Страница 12 из 56
- 93,94 -
Турбо Паскаль Турбо Си
----------------------------------------------------------------
type
Days = (Sun,Mon,Tues,Wed, enum days = (Sun,Mon,Tues,Wed,
Thurs,Fri,Sat); Thurs,Fri,Sat);
var
Today : Days; enum days today;
----------------------------------------------------------------
Операции.
----------------------------------------------------------------
В Турбо Си имеются все операции Турбо Паскаля и еще некото-
рые другие.
Основным отличием между этими двумя языками является ис-
пользование операции присвоения. В Паскале, присвоение (:=) яв-
ляется оператором. В Си присвоение (=) - оператор, который может
использоваться в выражениях.
В таблице 6.1 дается сравнение операций на Турбо Паскале и
Турбо Си. Операции объединены в группы и приводятся в порядке
приоритета.
- 95,96 -
Табл.6.1 Операции на Паскале и Си
----------------------------------------------------------------
унарный минус A:= - B; a= - b;
унарный плюс A:= + B; a= + b;
логическое НЕ not Flag; !flag;
поразрядное
дополнение A:= not B; a=-b;
адрес A:=Addr(B); a=&b;
указатель(ссылка) A:= IntPtr^; a=*intptr;
размер A:= SizeOf(B); a=sizeof(b);
увеличение A:= Suсс(A); a++ и ++a
уменьшение A:= Pred(A); a-- и --a
умножение A:= B*C; a= b*c;
целочисленное
деление A:= BdivC; a= b/c;
деление X:= B/C; x= b/c;
модуль (остаток) A:= B mod C; a= b%c;
сложение A:= B + C; a=b+c;
вычитание A:= B - C; a=b-c;
сдвиг вправо A:= B shr C; a=b>>c;
сдвиг влево A:= B shl C; a=b - адрес, по которому scanf
размещает вводимые данные. Это значит, что вам часто необходимо,
будет использовать оператор адреса (&). Есть также другие общеис-
пользуемые команды: gets, которая читает входную строку до тех
пор, пока вы не нажмете Ввод, и getch, которая читает символ пря-
мо с клавиатуры без эхо.
Приведем несколько команд ввода на Паскале и, соответствен-
но, на Си.
Турбо Паскаль (версия 3.x) Турбо Си
----------------------------------------------------------------
Readln(A,B); scanf("%d%d",&a,&b);
Readln(Name); scanf("%s",name);
/* или gets(name); */
Readln(X,A); scanf("%f%d",&x,&a);
Readln(Ch); scanf("%c",ch);
Read(Kbd,Ch); ch = getch();
----------------------------------------------------------------
Отметим одно важное отличие между двумя способами ввода
строк (scanf и gets). Scanf читает все символы до тех пор, пока
не встретится пробел (табуляция, конец строки); напротив, gets
считывает любые символы, пока вы не нажмете Ввод.
- 101,102 -