среда, 20 июля 2011 г.

С++ : Работа с файлами

Итак... Мы подошли с вами к очень интересной теме - работе с файлами. Она не очень тяжелая, просто надо разобраться , что такое файловый поток и с чем его едят. Лабораторная, даная мне для закрепления материала, оказалась простой. Вот задание и код:


/*
Лабораторная работа № 3

   Разработать алгоритм решения задачи обработки данных, хранящихся в бинарном
файле чисел или символов.
   Реализовать алгоритм на языке С++ с помощью функций с параметрами. Описать следующие функции:
1) функцию формирования файла (параметрами должны быть файловый поток и его имя);
2) функцию чтения файла (параметрами должны быть файловый поток и его имя);
3) функцию обработки файла (параметрами должны быть файловый поток и его имя).
   В главной функции должны быть реализованы объявления файловых потоков и вызов функций
работы с файлами.

Юмор : Пpоект Genezis

Пpоект genezis

(из коpпоpативной пеpеписки)
Генеpальномy диpектоpy Иегове
от начальника маpкетингового отдела Гавpиила

Исследования, пpоведенные нашим отделом в pамках пpоекта Genesis, показали, что наилyчшие пеpспективы на pынке имеют системы следyющей конфигypации:

o Планета: 1 шт.
o Радиyс: 3 000 км
o Сила тяжести: 0.5g
o Соотношение сyша/вода: 1:1
o Темпеpатypа: +24
o Атмосфеpа: кислоpод
o Моpя: пpесная вода
o Реки: молоко, мед
o Фаyна: тpавоядная

Юмор : Русский программист


Русский программист
Любой русский программист, после пары минут чтения кода, обязательно вскочит и произнесет, обращаясь к себе: переписать это все нафиг. Потом в нем шевельнется сомнение в том, сколько времени это займет, и остаток дня русский программист потратит на то, что будет доказывать самому себе, что это только кажется, что переписать это много работы. А если взяться и посидеть немного, то все получится. Зато код будет красивый и правильный. На следующее утро русский программист свеж, доволен собой и без единой запинки докладывает начальству, что переписать этот кусок займет один день, не больше. Да, не больше. Ну, в крайнем случае, два, если учесть все риски. В итоге начальство даст ему неделю и через полгода процесс будет успешно завершен. До той поры, пока этот код не увидит другой русский программист.

суббота, 16 июля 2011 г.

С++: Ввод в структуры данных. Двусвязный линейный список


Двусвязные линейные списки
         Для описания элементов односвязного линейного списка использовался тип PNode
struct Node
{
      int data;      //информационное поле, данные, любой порядковый тип
      Node *next;         //указатель на следующий элемент
};
typedef Node * PNode;

С++: Ввод в структуры данных. Стек

 Стек. Операции, выполняемые над стеком
Стек представляет собой динамическую структуру, доступ к элементам которой осуществляется через указатель на вершину. Каждый элемент стека , во-первых, хранит какую-то информацию, во-вторых, указывает на предыдущий элемент. Вершина стека указывает на NULL. Стек работает по принципу: «последний вошел – первый вышел (LIFO: last inputfirst output)». Элемент стека доступен, только если он находится на вершине стека. Для представления стека с помощью указателей вводится тип:

struct Node
       {
               char inf;      //информационное поле, данные, любой порядковый тип
               Node *prev;         //указатель на предыдущий элемент
       };

С++: Ввод в структуры данных. Линейный список и очередь

Немного теории...
1. Линейный список
Линейный список представляет собой динамическую структуру, доступ к элементам которой осуществляется через указатель на первый элемент (голову списка). Каждый элемент связанного списка , во-первых, хранит какую-то информацию (данные), во-вторых, указывает на следующий за ним или предыдущий элемент. Для представления списка с помощью указателей вводится тип:
struct Node
{
      int data;      //информационное поле, данные, любой порядковый тип
      Node *next;         //указатель на следующий элемент
};
typedef Node * PNode;

С++: Работа с матрицами

Увидев, какое задание на вторую лабораторную приготовил мне преподаватель, я немного ужаснулся... Тогда я мог только нарисовать матрицу, но никак не мог даже представить, какие операции надо будет сделать, чтобы написать лабораторную..

Но это было недолго..Пораскинув мозгами, я и мой однокурсник (да..признаюсь..лабу делал не я один) написали более - менее рабочую программку. Вот задание и код:

/*1.   Даны действительная матрица размера n x (n+1), действительные числа a1, ..., an+1, b1, ..., bn+1,
натуральные числа p, q, (p n, q n+1). Образовать новую матрицу размера (n+1) x (n+2)
вставкой после строки с номером p данной матрицы новой строки с элементами a1, ..., an+1 и
последующей вставкой после столбца с номером q нового столбца с элементами b1, ..., bn+1 .

среда, 13 июля 2011 г.

С++: Динамические двухмерные массивы

Моя первая статья...

На примере моей первой лабораторной второго полусеместра 1го курса хочу показать вам, дорогие читатели, как я осваивал работу с динамическими массивами(одномерными и матрицами)

Итак, ниже задание и код, написаный на С++ в консоли, а также комментарии:

/*Лабораторная работа № 1

Разработать алгоритм решения задачи обработки двумерного массива размерности mxn.
Реализовать алгоритм на языке С++ с помощью функций с параметрами:
1)     функции ввода массива (в качестве параметров выступают массив и его размерность);
2)     функции вывода массива (в качестве параметров выступают массив и его размерность);
3)     функций (функции) расчета (может быть с возвращаемым значением или void-функций).
В главной функции должен быть реализован только вызов функций и вывод результатов на экран.
Данные разместить в динамической памяти.
Условие задачи выбрать по номеру в журнале. Для сортировки использовать тот же алгоритм, что и
в лабораторной работе № 1.
2.     Переставить столбцы матрицы так, чтобы элементы первой строки были отсортированы по убыванию
*/

О блоге

Этот блог я создал для того, чтоб не просто заливать написаный собственноручно код, а помочь таким же как и я "будущим программистам" стать Программистами. В этом блоге будут высветлятся вопросы и код, написаный на разных языках, таких как С++, С#, Java, Android  и тд и тп и залиты они будут по мере изучения их мною.