Страница 11 из 56
program My_Prog;
var
I,J,K : Integer; int i,j,к
function Max(A,B:Integer):Integer; int max (int a, int b)
begin {
if A>B if (a>b) return (a);
then Max:=A else return (b);
else Max:=B }
end; /* конец max () */
{конец функции Max}
- 85,86 -
procedure Swap (var A,B: Integer); void swap (int *a,int *b)
var Temp : Integer;
begin { int temp;
Temp:=A; A:=B; B:=Temp temp= *a; *a=*b; *b=temp;
end; }
{конец процедуры swap} /*конец swap () */
begin {глав. модуль программы main ()
My_Prog}
I:=10; J:=15; {
K:=Max (I,J); i=10; j=15;
Swap (I,K); k=max (i,j);
Write ('I=',I:2, 'J=', J:2); swap (&i, &k);
Writeln ('K=', K:2) printf("i=%2d j=%2d",i,j);
end printf ("k=%2d\n",k);
{конец программы My_Prog} }
/*конец main*/
-----------------------------------------------------------------
Сравнение базовых элементов.
----------------------------------------------------------------
Как и в главе 6, рассмотрим семь базовых элементарных поня-
тий программирования - вывод, типы данных, операции, ввод, выпол-
нение по условию, выполнение в цикле и подпрограммы.
В ы в о д.
-----------------------------------------------------------------
Основные команды вывода Турбо Паскаля это - Write и Writeln.
Турбо Си, напротив, имеет множество команд, позволяющих выполнять
точно то, что вы хотите. Основной командой является printf. Она
имеет формат:
printf(
Writeln('"Hello," said John'); printf("\"Hello,\"said
John\n");
Writeln(A,' + ',B,' = ',C); printf("%d + %d =
%d\n",a,b,c);
Writeln('You owe us S',Amt:6:2); printf("You owe us
S%6.2f\n",amt);
Writeln('Your name is ',Name,'?'); printf("Your name is
%s?\n",name);
Writeln('The answer is ',Ans); printf("The answer is
%c\n",ans);
- 89,90 -
Write(' A = ',A:4); printf(" a = %4d",a);
Writeln(' A*A = ',(A*A):6); printf(" a*a = %6d\n",a*a);
----------------------------------------------------------------
Другие два оператора вывода Си, которые бы вы вероятно хоте-
ли бы знать - это puts и putchar. puts получает строку в качестве
аргумента и выводит ее, автоматически добавляя символ перехода на
новую строку. Например, следующие команды эквивалентны:
Writeln(Name); puts(Name);
Writeln('Hi, there!');Writeln; puts("Hi, there!\n");
Команда putсhar (вывести символ) значительно проще. Она вы-
водит всего один символ. Например:
write(Ch); putchar(ch);
Т и п ы д а н н ы х.
----------------------------------------------------------------
Основные типы данных Турбо Паскаля имеют соответствующие эк-
виваленты в Турбо Си. Однако Си имеет как значительно большее
разнообразие типов данных с широким выбором числовых диапазонов
для значений целых и с плавающей точкой, так и спецификаторов
signed и unsigned (со знаком и без знака). Ниже приведена таблица
соответствия между типами данных на Паскале и Си.
Турбо Паскаль (версия 3.х) Турбо Си
----------------------------------------------------------------
char (1 байт) chr(0-255) char (1 байт) -129 - 127
byte (1 байт) 0 - 255 unsigned char (1 байт) 0 - 255
integer (2 байт) -32763 - 32767 short (2 байта) -32768 - 32767
int (2 байта) -32769 - 32767
- 91,92 -
unsigned int (2 байта) 0 - 65535
long (4 байта) -2^31 - 2^31-1
unsigned long (4 байта)
0 - (2^32-1)
real (6 байта) 1E-38 - 1E+38 float (4 байта) +-3.4E+308
double (8 байт) +-1.7E+308
boolean (1 байт) false, true 0 = false, не ноль = true
----------------------------------------------------------------
Обратите внимание на то, что в Си нет логического типа дан-
ных: выражения, в которых требуются логические значения, интер-
претируют значения "ноль", как false (ложь), а все другие, как
"true" (истина).
В дополнение к приведенным типам, Турбо Си имеет enumerated
(перечислимый) тип данных; однако, в отличие от Паскаля, это пе-
реназначаемые целые константы и они полностью совместимы со всеми
целыми типами.