Lecții · BAC · Informatica
Типы данных и выражения в Паскале и C++
Tema din testele ANCE: Типы данных и выражения
Тема II начинается с типов данных, идентификаторов и значений выражений на двух языках. Здесь типы поставлены рядом, правила операторов и то, как барем платит за каждое значение и каждый тип.
Lecția este în rusă.
- Ce trebuie să știi
- Cum apare la examen
- Exemplu rezolvat
- Greșeli tipice
- Verifică-te
Ce trebuie să știi
Типы, которые встречаются в тестах
| Паскаль | C++ | что хранит | порядковый |
|---|---|---|---|
integer | int | целые числа | да |
real | float | вещественные числа | нет |
char | char | один символ | да |
boolean | bool | true или false | да |
string | string | строку символов | нет |
(A, B, C) перечисляемый | enum {A, B, C} | именованные значения по порядку | да |
array[1..10] of integer | int B[10] | массив | нет |
record ... end | struct { ... } | компоненты разных типов | нет |
У порядковых типов значения счетные, у каждого есть предыдущее и следующее; на них работают ord, chr, succ, pred и оператор for. Перечисляемый тип порядковый, а его значения нумеруются с нуля: в type xx = (A, B, C, D, E) получается и .
Идентификаторы и ключевые слова
Идентификатор начинается с буквы или подчеркивания и состоит из букв, цифр и подчеркиваний: abc и a1b2 — идентификаторы, а 3a2b не является элементом языка, потому что начинается с цифры. case, for, type (Паскаль), switch, typedef (C++) — ключевые слова, их нельзя брать в качестве имен переменных.
Операторы и их порядок
- арифметические:
+,-,*, а деление имеет две формы:/дает вещественный результат в обоих языках, аdivиmod(Паскаль) или/и%между целыми (C++) дают целое частное и остаток divиmodтребуют целых операндов:y mod tпри вещественномy— синтаксическая ошибка, как иy % tв C++- остаток сохраняет знак делимого:
- сравнения:
=,<>,<,<=,>,>=в Паскале;==,!=,<,<=,>,>=в C++ - логические:
not,and,orв Паскале;!,&&,||в C++ - порядок: функции и скобки, затем
not, затем*,/,div,mod,and, затем+,-,or, и в конце сравнения
Присваивание и сравнение
В Паскале присваивание — это :=, а = сравнивает: c = chr(ord(c) - 2) не меняет c, а дает значение типа boolean. В C++ присваивание — =, сравнение — ==, и само присваивание имеет значение того типа, что и переменная слева.
Стандартные функцииabs, sqr (Паскаль) или pow (C++), sqrt, trunc, round, ord, chr, length. trunc отбрасывает дробную часть без округления: ; в C++ то же делает приведение int(...). Код ASCII буквы A равен 65, поэтому ord('D') = 68.
Как записать математическое выражение в коде
Дробь пишется в строку, со скобками в числителе и знаменателе, а каждый знак заменяется своей функцией: становится sqrt(abs((1 - sqr(cos(x))) / sin(x))) в Паскале и sqrt(fabs((1 - pow(cos(x), 2)) / sin(x))) в C++. За каждую функцию и за скобки барем дает отдельный балл.
Вывод с форматом
В Паскале write(y:0:2) выводит вещественное число с двумя знаками после запятой, а write(x:5) выравнивает по пяти позициям. В C++ то же самое делают setw(5), fixed и setprecision(2).
Restul lecției e în abonament
Itemii reali ANCE în care apare tema, exemplul rezolvat pas cu pas, greșelile tipice și cele 7 întrebări de verificare se deschid cu abonamentul. „Ce trebuie să știi” rămâne gratuit.
Se deschide cu abonamentul
- Cum apare la examen
- Exemplu rezolvat
- Greșeli tipice
- Verifică-te
