Архив за ноември, 2008
* Константи, псевдоними и булев тип
Публикувано на 06 ноември 2008 в раздел С/С++.
Всички типове данни от С (int, float, double, char, указатели, и тн…), които сме разгледали дотук, са валидни и за С++. Като разширение на езика ни се предоставят и допълнителни възможности:
1. Константи: Досега, когато ни се налагаше да въвеждаме константи използвахме предпроцесора. Това не винаги е удобно, а освен това може да доведе до неочаквани грешки. Затова в С++ са въведени константи:
const <тип> <име на променлива> = <стойност>;
Както се досещате те са много удобни при дефиниране на размерност на масиви, заделяне на памет и в всякакви подобни операции, където използваме една и съща постоянна величина на множество места в програмата. Важно е да се каже, че е задължително константите да се инициализират в момента на декларирането си. Прочети още…
* Въведение в C++
Публикувано на 06 ноември 2008 в раздел С/С++.
C++ на практика е език, който „надгражда“ езика за програмиране С, като добавя нови възможности:
– Обектно-ориентирано програмиране
– Създаване и използване на абстрактни типове данни
– Подобрения на някои съществуващи конструкции
На практика вие можете да използвате всичко научено дотук от езика за програмиране С при С++ (най-малкото примерите от предишните статии са писани за компилаторът на Microsoft – Visual C++ 6.0). Затова няма да преразглеждаме вече научени езикови конструкции, а ще даваме примери за част от нововъведенията. Прочети още…
* Накратко за обектно-ориентираното програмиране
Публикувано на 06 ноември 2008 в раздел С/С++.
За да обясним понятието „обектно-ориентирано програмиране“ е добре да опишем какви програми писахме на езика за програмиране С досега:
1. Скриптови програми: Последователно изпълнение на предварително зададена поредица от операции.
2. Процедурно програмиране: Възможност за „разклоняване“ на програмата, така че тя да извършва различни последователности от операции (процедури или както споменахме в т.1 – скриптове), в зависимост от въведени данни от потребителят. След изпълнение на дадена процедура програмата се „връща“ на мястото, където процедурата е извикана.
3. Модулно-процедурно програмиране: Предоставя възможност за обединяване на различни процедури в т.нар. „модули“. По този начин разделяме програмата на различни логически части, които се свързват почежду си чрез т.нар. „procedure calls“. Прочети още…
* Допълнителни задачи към упражнения 2 и 3
Публикувано на 01 ноември 2008 в раздел С/С++.
Задача: Дадена е матрица с N реда и M стълба, която може да съдържа елементи числата 0 и 1. Нека тази матрица е лабиринт, в който 0 означава, че има път, а 1 че има препятствие. Елемент (0, 0) се нарича вход, а елемент (N, M) изход от лабиринта. В лабиринта можем да се движим само по хоризонтала и вертикала. Напишете програма с меню и следните функции:
– Въвежда елементите на матрицата от клавиатурата.
– Генерира случаен лабиринт.
– Обхожда лабиринта и намира възможен път (ако има такъв).
– Намира най-краткият от възможните пътища (ако има такива).
Задача: Даден е едномерен масив от тип int. Запълнете масива с произволни числа и реализирайте функция, която намира най-голямото възможно число, образувано от елементите на масива.
Задача: В текстов файл са записани имена, телефони и e-mail адреси в следния формат:
Ivan, 0888555666, ivan@abv.bg
Petko, 0899555666, petko@yahoo.com
…
Напишете програма, която прочита файла и:
– Изважда имената и телефоните и ги записва в нов файл phonebook.txt, като всяко име и телефон са на отделен ред.
– Изважда всички e-mail адреси и ги записва във файл maillist.txt, като всеки адрес е на нов ред.