Skip to content

Instantly share code, notes, and snippets.

@ramntry
ramntry / file.c.c
Created October 14, 2011 19:40
Reading file from c- and cpp-code in c-, cpp- and stl-style
/**
* Чтение из файла в С
*/
#include <stdio.h>
#define MAX_SIZE 1024
int main()
{
@ramntry
ramntry / malloc.v3.cpp
Created October 20, 2011 00:28
My malloc and free on sbrk()
#include <stdio.h>
#include <unistd.h>
#include "malloc.v3.h"
// Установка охранника в начало пока пустой кучи
//
MemoryAllocator::MemoryAllocator()
{
oldBrk = sbrk(0); // сохраняем первоначальную позицию границы
start = (MemoryBlock*) sbrk(sizeof(MemoryBlock)); // двигаем границу секции .data (статики) на размер охранника
@ramntry
ramntry / ieee754.cpp
Created October 23, 2011 20:35
IEEE 754 preparation
// author: Roman Tereshin
// email: roman.tereshin@student.spbu.ru
// hw 05, task 02
// По содержимому памяти вывести значение типа float в экспоненциальной
// форме:
// sm*q^(Sp), где s -- знак мантиссы, m -- мантисса, q -- основание системы
// счисления, S -- знак порядка, p -- порядок числа.
@ramntry
ramntry / intarray.cpp
Created October 28, 2011 18:13
OOP start
// Реализация не-inline методов класса. Для обращения к внутреннему пространству имен класса необходимо
// использовать оператор разрешения области видимости имен :: с предваряющим его именем
// класса.
#include "intarray.h"
IntArray::IntArray(int n) :
m_size(n), // Инициализация полей класса методом прямого
m_array(new int[n]) // ... вызова конструкторов этих полей (встроенные
{ // ... типы в C++ тоже имеют свои конструкторы)
@ramntry
ramntry / compex.pro
Created October 29, 2011 10:42
Yet another small class
SOURCES += \
main.cpp
@ramntry
ramntry / main.cpp
Created October 29, 2011 18:50
Integral syntax tree
/* Это второй листинг из серии. Первый смотрите здесь: https://gist.github.com/1322950 */
#include <iostream>
#include <fstream>
#include <string>
#include <stdexcept>
#include "polish_tree.h"
using namespace std;
@ramntry
ramntry / main.cpp
Created October 30, 2011 13:42
Set on binary search tree
#include <iostream>
using namespace std;
int main(void)
{
return 0;
}
@ramntry
ramntry / fibb.c
Created November 14, 2011 20:26
Calculate and print fibb.numbers
#include <stdio.h>
void printFibb(int counter, unsigned long long prevFibb, unsigned long long prevPrevFibb)
{
if (prevFibb == 1)
{
printf("1 1 ");
counter = counter - 2;
}
@ramntry
ramntry / fibbproc.c
Created November 14, 2011 20:52
Recursion procedure - Fibbonacy
#include <stdio.h>
void printFibb(int counter, int prevFibb, int prevPrevFibb)
{
if (prevFibb == 1)
{
printf("1 1 ");
counter = counter - 2;
}
@ramntry
ramntry / qsort.cpp
Created November 15, 2011 22:45
Быстрая сортировка
#include <cstdio>
const int n = 1024;
void qsort(int *array, int begin, int end)
{
int middle = (begin + end) / 2; // Расчет опорного элемента как арифметического среднего
int base = (array[begin] + array[middle] + array[end]) / 3; // ... первого, центрального и последнего элементов
int left = begin; // истинные границы отрезка массива нужно помнить для продолжения работы при нестолкновении