Skip to content

Instantly share code, notes, and snippets.

@ramntry
ramntry / txt
Created November 16, 2011 19:39
qsort trace
10 4 3 10 2
call #1. Base: 5
1: ^10 4 3 10 2$
swap
2: ^2 4 3 10 10$
3: 2 ^4 3 10 10$
4: 2 4 ^3 10 10$
5: 2 4 3 ^10 10$
6: 2 4 3 ^10$ 10
@ramntry
ramntry / helix.cpp
Created November 16, 2011 21:06
Печать массива в матрицу по спирали
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
void printHelix(int * matrix[], int size)
{
int x = size / 2;
int y = x;
@ramntry
ramntry / bubble_sort_statistics.pas
Created November 22, 2011 22:23
Bubble sort statistics
const
size = 30;
multiplier = 31; { Для генератора псевдослучайных чисел }
module = 37;
{********** Array Counter Object ***********}
type arrayType = array[1..size] of integer;
@ramntry
ramntry / is_permutation.pas
Created November 25, 2011 00:36
Программа определяет, является ли переданный массив чисел корректной перестановкой
program IsPermutation;
type IntArray = array[1..1024] of integer;
function isPermutation(a: IntArray; size: integer): boolean;
var i, mark: integer;
begin
i := 1;
IsPermutation := true; { Цикл работает до первого нарушения структуры перестановки }
while (IsPermutation = true) and (i <= size) do begin
@ramntry
ramntry / newton_search_root.pas
Created November 27, 2011 12:40
Поиск приближения нуля функции на отрезке модифицированным методом Ньютона
program NewtonSearchRoot;
type
FunctionType = function(x: double): double;
const
maxSteps = 100; { Максимально допустимое количество шагов }
eps = 0.000000000001; { Требуемая точность вычислений }
printInterRes = false; { Печатать ли все промежуточные приближения }
@ramntry
ramntry / exam2_task2.cpp
Created November 27, 2011 14:31
Вторая задача второй контрольной работы
#include <cstdio>
#include <cstring>
#include <cstdlib>
union Date
{
struct
{
char year[5];
char mounth[3];
@ramntry
ramntry / findcicles.pas
Created December 1, 2011 23:48
Поиск циклов в перестановках
type
ArrayType = array[1..7] of integer;
procedure findCicles(a: ArrayType; var dst: ArrayType);
var
startOfCicle: integer;
globalPointer: integer;
localPointer: integer;
address: integer;
i: integer;
#include <fstream>
#include <iostream>
using namespace std;
/**
* Главная идея: Если множество чисел второго массива лежит во множестве
* чисел первого и данные множества равномощны, то они равны.
*/
int main()
{
@ramntry
ramntry / hw.06_task.02.cpp
Created December 27, 2011 15:38
About OOP
// author: Roman Tereshin
// email: roman.tereshin@student.spbu.ru
// hw 06, task 02
// По дереву разбора арифметического выражения вычислить его значение. Дерево разбора хранится в файле в виде
// (<операция> <операнд1> <операнд2>), где <операнд1> и <операнд2> сами могут быть деревьями, либо числами.
// Например, выражение (1 + 1) * 2 представляется в виде (* (+ 1 1) 2). Должны поддерживаться операции +, -, *, /
// и целые числа в качестве аргументов. Требуется построить дерево в явном виде, распечатать его (не обязательно так
// же, как в файле), и посчитать значение выражения обходом дерева. Может быть полезна функция ungetc (если не '(',
@ramntry
ramntry / sort.pas
Created January 5, 2012 21:53
Сортировка прямым слиянием.
procedure StraightMergeSort;
var
i,j,k,L,t,h,m,p,q,r:
integer;
bUp:
boolean;
begin
nMove:=0;
nCompare:=0;