Программирование | Отладка | Web-технологии | Microsoft Office | Теор.информатика | Исслед-е операций | Операц. сис-мы | Новости |
Проектирование ИС | Исск. инт-т | Трансляторы | Об авторах | Карта сайта | Поиск |
Язык программирования Turbo Pascal |
Среда программирования Delphi 6 |
Язык программирования C++ |
Язык программирования C# |
Язык программирования Assembler |
Язык программирования Go |
Язык программирования Haskell |
Язык программирования Java |
Язык программирования Kotlin |
Язык программирования LISP |
Язык программирования Prolog |
Язык программирования Python |
Параллельные алгоритмы |
Сети Петри |
Начала |
Отладчик Turbo Debugger |
Основы HTML |
Технология Flash |
Язык программирования Perl |
Основы языка PHP |
Основы PhotoShop |
Основы JavaScript |
Основы CSS |
Основы CorelDRAW |
Библиотека jQuery |
Текстовый процессор Microsoft Word |
Электронные таблицы Microsoft Excel |
Система управления базами данных Microsoft Access |
Использование VBA в Microsoft Excel |
Место информатики в системе наук |
Общие сведения об информации |
Кодирование информации в теории Шеннона |
Основные понятия теории алгоритмов |
Классические формализации понятия 'алгоритм' |
Понятие рекурсии |
Сложность алгоритма |
Методы разработки алгоритмов |
Сложность задачи |
Информационное моделирование |
Основные понятия теории графов |
Алгоритмы поиска на графах |
Матроиды. 'Жадные' алгоритмы |
Динамическое программирование |
Алгоритмы |
UNIX и Linux |
Унифицированный язык моделирования UML |
Введение в машинное обучение с использованием Python |
Основы создания нейросети на Python |
Глубокое обучение на Python |
Начала |
Динамические структуры данных |
Библиотека RX |
Основные классы и события Delphi |
Основные компоненты Delphi |
Организация потоков |
Технология COM |
Язык программирования Object Pascal |
Локальные БД в Delphi |
Библиотека OWL |
Библиотека Qt |
Библиотека STL |
Библиотека шаблонов классов Borland |
Основы компьютерной графики |
Динамические структуры данных |
Начала |
Обработка исключительных ситуаций |
Оптимизация с помощью ассемблера |
Основы объектно-ориентированного программирования |
Потоки ввода-вывода |
Разное |
Редактор Resource Workshop |
Среда Visual C++ |
Программирование в Microsoft Visual C++ 2010 |
Технология CUDA |
Технология OLE |
Начала |
16-битное программирование |
32-битное программирование |
Основы логического программирования |
Динамические структуры данных |
Visual Prolog |
Библиотека PyQt5 |
Библиотека Tkinter |
Визуализация данных |
Начала |
Задачи ComputerScience |
Рекурсия |
Однострочники |
Вкладка RXControls |
Вкладка RXDBAware |
Вкладка RXTools |
Вкладка Standard |
Вкладка Additional |
Создание Internet-приложений |
Вкладка System |
Вкладка Win32 |
Вкладка Servers |
Технология ADO |
Вкладка QReport |
Вкладка InterBase |
Вкладка Dialogs |
Начала |
Среда программирования. Язык С/С++ |
Здесь мы продолжим изучать особенности использования простейших типов.
Пример 1.
#include<iostream.h> #include<stdio.h> main () { float z1 = 2.5,z2 = 5.67,z3 = z1 + z2; cout<<"Результат: "<<z3<<endl; printf ("Результат: %f\n",z3); }
Результат работы программы:
Результат: 8.17 Результат: 8.170000
Пример 2.
#include<iostream.h> #include<stdio.h> main () { double u1 = 2.5,u2 = 5.67,u3 = u1 + u2; cout<<"Результат: "<<u3<<endl; printf ("Результат: %e",u3); }
Результат работы программы:
Результат: 8.17 Результат: 8.170000e+00
#include<iostream.h>
main()
{
double x1,x2,x3,x4;
x1=1/3;
x2=1.0/3;
x3=1/3.0;
x4=1.0/3.0;
cout<<"x1="<<x1<<endl;
cout<<"x2="<<x2<<endl;
cout<<"x3="<<x3<<endl;
cout<<"x4="<<x4<<endl;
}
Результат работы программы:
x1=0 x2=0.333333 x3=0.333333 x4=0.333333
Прокомментируем полученные результаты. Переменной x1 присваивается результат целочисленного деления 1 на 3, так как и делимое и делитель являются целыми числами. Переменные x2, x3, x4 будут иметь один и тот же результат. Переменная x4 содержит результат вещественного деления 1.0 на 3.0, так как делимое и делитель представлены вещественными значениями. При вычислении значений переменных x2, x3, прежде происходит расширение типа от целого к вещественному, так как одно из чисел в выражении вещественного типа. Поэтому сначала тип второго числа "расширяется" до вещественного типа, а только потом выполняется деление.
Обратите внимание на отсутствие в этом списке строкового типа. Значением величины строкового типа является последовательность символов, поэтому этот тип не относят к простейшим типам.
Строки могут содержать любые допустимые символы, в том числе русские буквы. Значение строки в языке C++ записывают в кавычках (не путать с апострофами!). Кавычки не являются частью строки и вводятся только для того, чтобы отметить ее начало и конец, т.е. играют ту же роль, что и апострофы в случае одиночного символа.
В языке C++ нет специального типа, который можно было бы использовать для описания строк, поэтому они представляются в виде массива элементов типа char. Это означает, что символы строки можно представить себе расположенными в соседних ячейках памяти - по одному символу в ячейке:
Рис.1. Внутреннее представление строки
Необходимо отметить, что последним элементом массива является символ \0 (нуль-символ). Он используется для того, чтобы отмечать конец строки. Нуль-символ не есть цифра 0; он не выводится на печать и в таблице кодов ASCII имеет номер 0. Наличие нуль-символа означает, что количество ячеек массива должно быть по крайней мере на одну больше, чем число символов, которые необходимо размещать в памяти.
Массив можно представить себе как совокупность нескольких последовательно расположенных ячеек памяти. В нашем случае слово "Лошадь" представляет собой массив из 7 символов (6 букв слова + символ '\0').
Пример 4.
#include<iostream.h> #include<stdio.h> main () { char string[30], str[40]; printf("Задайте строку: "); scanf ("%s",string); printf ("%s\n",string); cout<<"-----------------"<<endl; cout<<"Еще раз задайте строку: "; cin>>str; cout<<str; }
Комментарии к примеру 4.
1. char string[30],str[40]; - описали два массива из 30 и 40 ячеек памяти, в каждую из которых можно поместить один элемент типа char.
2. scanf ("%s",string); - вводим строку при помощи функции scanf(). Мы уже говорили о том, что если нужно ввести значение строковой переменной, то использовать символ & не нужно.
3. printf ("%s\n",string); - выводим строку на экран при помощи функции printf().
4. cin>>str; - используя потоки, вводим строку.
5. cout<<str; - отправляем введенную строку в поток вывода.
Мы закончили изучение основных типов языка C++. На следующем шаге мы
поговорим
об использовании основных операций, перечень которых был приведен в
таблицах 1 и 2 шага 2.