Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C++ на примере Pascal.docx
Скачиваний:
13
Добавлен:
18.11.2019
Размер:
33.67 Кб
Скачать

Pascal

C/C++

Uses module_name (Crt например)

#include <module_name>

stdio.h – содержит описание функций ввода/вывода; math.h – математические функции; iostream.h – функции потока данных. #include - директива препроцессора

:=(присваивание)

=

=(сравнение)

==

x=x+y;

x += y; (или x=x+y, но первый вариант предпочтительней)

i=i+1 или Inc(i);

i++;

integer

int

real

float, double

char

char

string

string, AnsiString(только в Borland C++)

write(); writeln();

printf(“Результат: %d”, x);

%d – int, %f – float (double), %c - char, %s –string

printf(“M( %d) = %f\n”, t, M);

\n - переводит курсор на новую строку.

Например, в результате на экране отобразится: M(2)=5,238

read();

scanf(“%d”, &x); & - взятие адреса (обязательно)

if ( ) then begin

end

[else begin

end]

if () {

}

[else {

} ]

case

switch (в двух словах не опишешь, см [2], стр.86)

[] – значит необязательно, т.е. else может и не указываться

for i := 1 to 10 do begin

end

for (i=1; i<=10; i++){

}

while () do begin … end

while () {… }

repeat begin … end until ()

do { … } while ()

A – массив размерностью n

A[1],A[2],…,A[n]

A[0],A[1],…,A[n-1]

К С/С++: Если вы выделяете символьный массив, к примеру на 10 символов, то сможете уместить только 9. Последний десятый это символ окончания строки – ‘\0’, подробнее см. [1]

Function FunctName(var: type,…): returning_type

Begin

End

(кажется так)

прототип функции (инициализируют до функции main):

int FunctName(int , …);

описание функции (идет после функции main):

int FunctName(int x, …) {

int Result;

return Result;

} return можно и не указывать, тогда функция ничего не возвращает (процедура).

Procedure

void FunctName(int x, …) {…} – функция, которая ничего не возвращает. Инициализация как у функции. Понятия процедуры в Си нет.

Функция main – точка входа в вашу программу. Аналогично Begin/End , которые пишут в самом начале/конце программы на Паскале. Прототип для этой функции не требуется.

Пример программы на каноническом Си:

#include <stdio.h> /* необходим для работы ф-ций printf, scanf */

#include <conio.h> /* необходим для работы ф-ции getch*/

int F(int ); /* Прототип функции. */

/*

Ниже и есть та самая функция main, которая может иметь аргументы argc и argv. Это зависит от того, есть ли параметры для исполняемого файла в командной строке. Подробнее см. [1].

*/

int main() {

int x; /* Инициализация переменной x с типом integer. */

printf("Введите значение: "); /*Выводим надпись на экран.*/

scanf("%d", &x); /* Считываем переменную х, введенную пользователем с клавиатуры.*/

printf("Квадрат значения: %d", F(x)); /*Выводим результат, которая вернула функция F.*/

getch(); /*А ля readln;*/

} /* конец программы */

int F(int y) { /* описание функции F*/

/* можно включить в параметры переменную с именем x

(объявление локальных/глобальных переменных см. [2]) */

return y*y; /* Оператор возврата функции. Может возвращать любую переменную из тела функции, а так же саму функцию (рекурсия).*/

}

Математические функции (файл math.H)

мат. функция

синтаксис

примечание

acos

double acos(double x)

arcos (аналогично arcsin, atan)

cos

double cos(double x)

Есть также sin, tan; x – в радианах

cosh

double cosh(double x)

cos гиперболический (sinh, tanh)

ceil

double ceil (double x)

округление вверх

exp

double exp(double x)

экспонента

abs

double fabs(double x)

абсолютное значение (модуль)

hypot

double hypot(double x, double y)

гипотенуза

ln

double log (double x)

логарифм натуральный (!)

log10

double log10 (double x)

логарифм десятичный

power

double pow(double x, double y)

работает медленно, использовать в тяжелых случаях

sqrt

double sqrt (double x)

корень квадратный

Другие полезные функции

функция

синтаксис

примечание

rand

int rand(void)

(stdlib.h)

псевдослучайное целое число в диапазоне 0 – RAND_MAX

random

int random (num)

(stdlib.h)

псевдослучайное целое число в диапазоне 0 – num

atof

double atof (const char * s)

(math.h, stdlib.h)

преобразует строку S в число с плавающей запятой

atoi

int atoi (const char * s)

(stdlib.h)

преобразует строку S в целое число

ecvt

char * ecvt(double value, int ndig, int *dec, int *sign)

(stdlib.h)

преобразует число с плавающей запятой value в строку с числом цифр ndig; dec сохраняет позицию десятичной точки, sign – знак

gevt

char * gevt(double value, int ndec, char *buf)

(stdlib.h)

преобразует value в строку buf с числом цифр ndec

itoa

char * gevt(int value, char *string, int radix)

(stdlib.h)

Целое value в строку string по основанию radix.

Множество других функций, в т.ч. работы с символами и строками можно найти в [2]. Их не описываю, т.к. для написания лаб они не нужны.

Среда разработки. Что выбрать?

Помимо самого языка, требуется знание среды разработки (IDE). Среда разработки – это набор инструментов, облегчающих работу программиста. Включает компилятор, отладчик, текстовый редактор, трасировщик, объект-инспектор для изменения свойств компонентов (кнопки, окна, текстовые поля и т.п.), графический редактор (для рисования кнопочек, иконок и т.п.), обозреватель классов и кучу полезных вещей. Самые распространенные: Microsoft Visual Studio, Nokia Qt, Borland C++, Eclipse и т.д. Каждая из них имеет свою особенность – платформу, интерфейс пользователя, свой набор классов, свои иерархии классов, описание пользовательского интерфейса. Разработчики сред добавляют свои типы данных, классы (AnsiString у Borland’a к примеру), а Microsoft вообще переделывает имена файлов главных канонических библиотек (например include “STDIO.H” вместо <stdio.h>). Я думаю, они хотели переделать и синтаксис, но им не позволили, а язык лег в основу C#. Тем не менее, зная Studio, работу вы точно найдете. Но есть одно но. Мне эта IDE, уже писавшему программы с графическим интерфейсом, показалась непонятной и сложной. Без самоучителя, в лоб ее точно не освоить. А читать литературу, еще и по программированию, многие не любят. Да и время это требует.

Borland C++. Я учился в этой среде. Мне она нравится больше, она как то более логична. Продуктам Microsoft логичность не свойственна. Среда сложновата для начинающего, но разобраться в ней можно.

Nokia Qt – перспективная кроссплатформенная среда, быстро набирающая популярность. Можно разрабатывать приложения для Windows, Linux, Mac OS, Unix, Symbyan (или как он там пишется?), и сейчас даже на Android. Требует книжного изучения.

Я бы советовал начинать не с IDE, а с простого компилятора. Т.е. писать код в текстовом редакторе, а потом компилировать в командной строке и там же запускать cкомпилированное приложение. Покажется дико, но на самом деле это не так уж и сложно. Почему? Команду придется набирать только один раз - стрелочками на клавиатуре (вверх или вниз) можно выбирать ранее введенные команды. Компилятор мало весит, быстро качается и ставится, занимает мало дискового пространства. И самое главное, компилятор gcc приближен к каноническому С/С++, зная который вы потом сможете выбрать IDE по вкусу.

IDE ставятся легко, найти через поиск хакнутые версии и кейген я думаю вы сможете. Для счастливых обладателей лицензионной Windows можно скачать халявный Express Visual Studio (нужна регистрация) , у Nokia есть версия Qt с открытым исходным кодом. У Borland тоже есть ознакомительные версии (урезанные, но лабы написать хватит).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]