Задача 1.20

 

Задача 1.18

 

Определение длины строки C++

Задача определения длины строки ( в этой статье под понятием строки  мы подразумеваем массив символов char * ) в C++ решается достаточно просто:

Это относительно простой способ вычисления длины строки. Но эта статья не для того пишется, чтобы рассказать о замечательной функции strlen(), а для того, чтобы объяснить как вычислить длину строки, не прибегая к ней и не подключая заголовочный файл string.h

Continue Reading «Определение длины строки C++»

Задача со светофором на C++

Ответы mail.ru — штука глючная. Пытался ответить там на вопрос. Не дает вставлять код. Размещаюсь здесь.

Задача

Работа светофора для пешеходов запрограммирована следующим образом: начиная с начала каждого часа, в течение трех минут горит зеле-ный сигнал, затем в течение двух минут — красный, в течение трех минут — опять зеленый и т. д. Дано вещественное число N, означающее время в минутах, прошедшее с начала очередного часа. Определить, сигнал какого цвета горит для пешеходов в этот момент.

Язык С++.

Желательно решить простым способом (уровень новичка) . Да, и еще нужно использовать функции ввода и вывода scanf и printf, а не cin и cout.

Решение

Простые типы данных

Тип Значение Минимальный размер Максимальный размер
bool Логический тип (boolean) не определен не определен
char Символ 8 битов -128 до 127 (unsigned 0 до 255)
wchar_t Символ Unicode 16 битов
short Короткое целое число 16 битов -32768 до 32767 (unsigned 0 до 65535)
int Целое число 16 битов -2147483648 до 2147483647 (unsigned 0 до 4294967259)
long Длинное целое число 32 битов -2147483648 до 2147483647 (unsigned 0 до 4294967259)
float Число с плавающей запятой одинарной точности 6 значащих цифр 3.4Е-38 до 3.4Е+38
double Число с плавающей запятой двойной точности 10 значащих цифр 1.7Е-308 до 1.7Е+308
long double Число с плавающей запятой повышенной точности 10 значащих цифр 1.7Е-308 до 1.7Е+308

Чем отличается i++ от ++i

Часто начинающий программист запутывается в этих i++ и ++i. В этом небольшом посте попробуем разжевать материал так, чтобы не осталось сомнений в том, что Вы, молодой человек, никогда не запутаетесь и однозначно правильно решите какой вариант нужно использовать в конкретном случае.

Пожалуй начать нужно с определения. Оператор ++ — это сокращенное представление инкремента. Другими словами этот оператор применяют для того, чтобы к переменной прибавить 1. Continue Reading «Чем отличается i++ от ++i»

<iostream> или <iostream.h>

Многие C++ программисты все еще используют <iostream.h> вместо новых, совместимых стандартами библиотек <iostream>. В чем разница между ними?

Во-первых, обозначение .h стандартных файлов заголовка была объявлена устаревшей более чем 5 лет назад. Использование устаревших функций в новом коде никогда не является хорошей идеей.

С точки зрения функциональности, <iostream> содержит набор шаблоннизированных классов ввода/вывода.

В-третьих, стандартная спецификация интерфейса iostream была изменена во многих тонких аспектах. Следовательно, интерфейсы и реализации <iostream> отличаются от <iostream.h>.

Наконец, <iostream> компонентов объявлены в пространстве имен (namespace) std, а <iostream.h> компоненты носят глобальный характер.

Из-за этих существенные различия, вы не можете смешивать две библиотеки в одной программе. Как правило, использование <iostream>, если вы имеете дело со старым кодом, который совместим только с <iostream.h>.

Строки C++: массив строк c++

Для тех, кто ищет как создавать массивы строк C++ типа string[], char[][] эта статья будет не столь полезна, т.к. здесь я разбираю динамические массивы типа vector и map. Даже если вы прекрасно знаете как они работают, думаю, что будет интересен сам эксперимент. Continue Reading «Строки C++: массив строк c++»

Строки C++: преобразование строки в число.

Еще одна задача, которая часто встречается на форумах — это вопрос по преобразованию строки в число. И не важно какого типа число: int, float, или другого. Важен сам факт преобразования, сама технология.

На самом деле если особо не забивать голову замарочками, типа «функция atoi не всегда работает корректно (что я проверил на практике, но не искал причины)», то вопрос решается очень легко.

Чтоб не тянуть я сразу приведу 2 функции преобразования строки в число типа int. Вы можете просто изменить тип данных и получите float, double…

Для начала нужно подключить заголовочный файл sstream

….

….

Так всё легко и просто. А для удобства я бы порекомендовал вынести все функции преобразования строк в отдельный класс и работать с ним.