Четверг, 09.05.2024, 16:43
Приветствую Вас Любознательный | RSS

Сайт студентов ИАТЭ специальности ИС

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: SlipandSlide, fenom  
Форум ИС ИАТЭ » Учебка » Примеры программ на C++ » ОТДЕЛЬНЫЕ ЦИКЛЫ И ПРОЦЕДУРЫ
ОТДЕЛЬНЫЕ ЦИКЛЫ И ПРОЦЕДУРЫ
WolfClanДата: Вторник, 21.04.2009, 09:02 | Сообщение # 1
Группа: Удаленные







ПЯВУ 1-й курс
МАТРИЦЫ, МАССИВЫ, ФУНКЦИИ



1. ПРОИЗВЕДЕНИЕ ЭЛЕМЕНТОВ МАССИВА С ЧЕТНЫМИ НОМЕРАМИ
2. СУММА ЭЛЕМЕНТОВ МАССИВА, РАСПОЛОЖЕНЫХ МЕЖДУ ПЕРВЫМ И ПОСЛЕДНИМ ЭЛЕМЕНТАМИ
3. ВЫВОД НОМЕРОВ СТРОК С MAX ЭЛЕМЕНТОМ
4. СУММА ЭЛЕМЕНТОВ КАЖДОЙ СТРОКИ МАТРИЦЫ
5. НАХОЖДЕНИЕ МАКСИМУМА В МАССИВЕ
6. ПОМЕНЯТЬ МЕСТАМИ НАИБОЛЬШИЙ И НАИМЕНЬШИЙ ЭЛЕМЕНТ МАССИВА
7. НАПЕЧАТАТЬ НОМЕРА СТРОК СОДЕРЖАЩИХ НЕ МЕНЕЕ 3-х ЭЛЕМЕНТОВ
8. СОРТИРОВКА ОТ MIN К MAX В МАТРИЦЕ
9. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА ОТРИЦАТЕЛЬНЫХ ЭЛЕМЕНТОВ В МАТРИЦЕ
10. ПОИСК САМОЙ ДЛИННОЙ ЦЕПОЧКИ ПОДРЯД ИДУЩИХ ОДИНАКОВЫХ ЭЛЕМЕНТОВ В МАССИВЕ
11. НАХОЖДЕНИЕ МИНИМАЛЬНЫХ ЭЛЕМЕНТОВ МАССИВА
12. НОМЕР СТРОКИ МАССИВА, СУММА ЭЛЕМЕНТОВ КОТОРОЙ МАКСИМАЛЬНА
13. ПРОЦЕДУРА СРАВНЕНИЯ ДВУХ СТРОК
14. ПРОИЗВЕДЕНИЕ ОТРИЦАТЕЛЬНЫХ ЭЛЕМЕНТОВ МАССИВА
15. ПЕРЕВОРОТ МАССИВА


ПЯВУ 2-й курс
СПИСКИ



16. ПОСТРОИТЬ СПИСОК
17. НАПЕЧАТАТЬ СПИСОК
18. ДОБАВИТЬ В СПИСОК ОДИН ЭЛЕМЕНТ В НАЧАЛО (ВЛЕВО)
19. ДОБАВИТЬ В СПИСОК ОДИН ЭЛЕМЕНТ В КОНЕЦ (ВПРАВО)
20. ВСТАВИТЬ В СПИСОК 1 ЭЛЕМЕНТ ПОСЛЕ ЭЛЕМЕНТА С ЗАДАННЫМ АДРЕСОМ
21. ИСКЛЮЧИТЬ ЭЛЕМЕНТ С ЗАДАННЫМ АДРЕСОМ
22. ОТСОРТИРОВАТЬ СПИСОК В ПОРЯДКЕ ВОЗРАСТАНИЯ ЭЛЕМЕНТОВ СПИСКА ОТ ДНА КВЕРХУ
23. ВСЕ ОТРИЦАТЕЛЬНЫЕ ЭЛЕМЕНТЫ ПЕРЕНЕСТИ В НАЧАЛО СПИСКА, НЕ НАРУШАЯ ИХ ПОРЯДОК СЛЕДОВАНИЯ
24. ВСЕ ОТРИЦАТЕЛЬНЫЕ ЭЛЕМЕНТЫ ПЕРЕНЕСТИ В КОНЕЦ СПИСКА, НЕ НАРУШАЯ ИХ ПОРЯДОК СЛЕДОВАНИЯ
25. ПРОВЕРЯЕТ, ВХОДИТ ЛИ ДВУНАПРАВЛЕННЫЙ СПИСОК L2 В СПИСОК L1


БИНАРНЫЕ ДЕРЕВЬЯ



26. ФУНКЦИЯ НАХОЖДЕНИЯ СУММЫ УЗЛОВ ДЕРЕВА
27. НАХОЖДЕНИЕ СУММЫ ОТРИЦАТЕЛЬНЫХ УЗЛОВ
28. НАХОЖДЕНИЕ КОЛИЧЕСТВА ОТРИЦАТЕЛЬНЫХ УЗЛОВ
29. ФУНКЦИЯ ПОИСКА КОЛ-ВА УЗЛОВ С ОДИНАКОВЫМИ ЗНАЧЕНИЯМИ
30. УНИЧТОЖИТЬ ЦЕПОЧКУ ОТРИЦАТЕЛЬНЫХ ЭЛЕМЕНТОВ РАСПОЛОЖЕННЫХ В НАЧАЛЕ СПИСКА
31. УНИЧТОЖИТЬ 10 ЭЛЕМЕНТОВ В КОНЦЕ СПИСКА (предположительно в списке более 10 эл.)

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

 
WolfClanДата: Вторник, 21.04.2009, 09:07 | Сообщение # 16
Группа: Удаленные





ПЕРЕВОРОТ МАССИВА

float temp;
for (i=0, j=SIZE-1;i<j;i++,j--){
temp = a[i];
a[i] = a[j];
a[j] = temp;

 
SlipandSlideДата: Воскресенье, 07.02.2010, 15:05 | Сообщение # 17
Кулхацкер
Группа: Модераторы
Сообщений: 107
Репутация: 7000
Статус: Offline
ПОСТРОИТЬ СПИСОК

void make (node *&first, node *&last, int x) {
first = 0;
last = 0;
do {
cout<<"\n Vvedite chislo \n";
cin>>x;
addr (first,last,x);
cout<<"\n Prodolzhit y/n \n";
}
while (getch()!='n');
}


Glory to Arstotzka!
 
SlipandSlideДата: Воскресенье, 07.02.2010, 15:07 | Сообщение # 18
Кулхацкер
Группа: Модераторы
Сообщений: 107
Репутация: 7000
Статус: Offline
НАПЕЧАТАТЬ СПИСОК

void output (node *first) {
node *p = first;
if (first == 0)
cout<<"\n Spisok pust \n";
else {
while (p!=0) {
cout<info<<" ";
p = p->next;
}
cout< }
}


Glory to Arstotzka!
 
SlipandSlideДата: Воскресенье, 07.02.2010, 15:09 | Сообщение # 19
Кулхацкер
Группа: Модераторы
Сообщений: 107
Репутация: 7000
Статус: Offline
ДОБАВИТЬ В СПИСОК ОДИН ЭЛЕМЕНТ В НАЧАЛО (ВЛЕВО)

void addl (node *&first, node *&last, int x) {
node *p = new node;
p->info = x;
p->next = last;
p->prev = 0;
if (first == 0)
last = p;
else
first->prev = p;
first = p;
}


Glory to Arstotzka!
 
SlipandSlideДата: Воскресенье, 07.02.2010, 15:10 | Сообщение # 20
Кулхацкер
Группа: Модераторы
Сообщений: 107
Репутация: 7000
Статус: Offline
ДОБАВИТЬ В СПИСОК ОДИН ЭЛЕМЕНТ В КОНЕЦ (ВПРАВО)

void addr (node *&first, node *&last, int x) {
node *p = new node;
p->info = x;
p->next = 0;
p->prev = last;
if (first == 0)
first = p;
else
last->next = p;
last = p;
}


Glory to Arstotzka!
 
SlipandSlideДата: Воскресенье, 07.02.2010, 15:12 | Сообщение # 21
Кулхацкер
Группа: Модераторы
Сообщений: 107
Репутация: 7000
Статус: Offline
ВСТАВИТЬ В СПИСОК 1 ЭЛЕМЕНТ ПОСЛЕ ЭЛЕМЕНТА С ЗАДАННЫМ АДРЕСОМ

void vstavka (node *&first, node *&last,node *t, int x) {
node *p = new node;
p->info = x;
p->next = t->next;
p->prev = t;
if (t == last)
last = p;
else
t->next->prev = p;
t->next = p;
}


Glory to Arstotzka!
 
SlipandSlideДата: Воскресенье, 07.02.2010, 15:13 | Сообщение # 22
Кулхацкер
Группа: Модераторы
Сообщений: 107
Репутация: 7000
Статус: Offline
ИСКЛЮЧИТЬ ЭЛЕМЕНТ С ЗАДАННЫМ АДРЕСОМ

void del (node *&first, node *&last, node *t) {
if (t == first)
first = first->next;
else
t->prev->next = t->next;
if (t == last)
last = last->prev;
else
t->next->prev = t->prev;
delete t;
}


Glory to Arstotzka!
 
SlipandSlideДата: Воскресенье, 07.02.2010, 15:17 | Сообщение # 23
Кулхацкер
Группа: Модераторы
Сообщений: 107
Репутация: 7000
Статус: Offline
ОТСОРТИРОВАТЬ СПИСОК В ПОРЯДКЕ ВОЗРАСТАНИЯ ЭЛЕМЕНТОВ СПИСКА ОТ ДНА КВЕРХУ

void sort(node *&first, node *&last){
//сортируем по возрастанию

node *p; //указатель на то место, куда будем переставлять
node *p1; //указатель-переменная цикла
node *min;//указатель на элемент с минимальным значением

int temp; // буфер

p = first;

while(p){

p1=p;
min = p1;

while(p1){
//ищем узел с минимальным info
if(p1->info < min->info)
min = p1;

p1=p1->next;

};
if (p!=min){
//перставляем если найдено значение еще меньше
temp = p->info;
p->info = min->info;
min->info = temp;
};

p=p->next;
};
}


Glory to Arstotzka!
 
SlipandSlideДата: Воскресенье, 07.02.2010, 15:20 | Сообщение # 24
Кулхацкер
Группа: Модераторы
Сообщений: 107
Репутация: 7000
Статус: Offline
ВСЕ ОТРИЦАТЕЛЬНЫЕ ЭЛЕМЕНТЫ ПЕРЕНЕСТИ В НАЧАЛО СПИСКА, НЕ НАРУШАЯ ИХ ПОРЯДОК СЛЕДОВАНИЯ

void main () {
int x = 0;
node *first, *last, *first2 = 0, *last2=0;
make (first, last, x);
node *t, *p = first;
while (p!= 0) {
t=p;
p = p->next;
if (t->info<0) {
x=t->info;
del (first,last,t);
addr (first2,last2,x);
}
}
if (first2 == 0)
cout<<"\n Spisok ne izmenen \n";
else {
if (first == 0) {
first = first2;
last = last2;
}
else {
last2->next = first;
first->prev = last2;
first = first2;
}
cout<<"\n IZMEN SPISOK \n";
output (first);
}
getch();

}


Glory to Arstotzka!
 
SlipandSlideДата: Воскресенье, 07.02.2010, 15:22 | Сообщение # 25
Кулхацкер
Группа: Модераторы
Сообщений: 107
Репутация: 7000
Статус: Offline
ВСЕ ОТРИЦАТЕЛЬНЫЕ ЭЛЕМЕНТЫ ПЕРЕНЕСТИ В КОНЕЦ СПИСКА, НЕ НАРУШАЯ ИХ ПОРЯДОК СЛЕДОВАНИЯ

void main () {
int x = 0;
node *first, *last, *first2 = 0, *last2=0;
make (first, last, x);
node *t, *p = first;
while (p!= 0) {
t=p;
p = p->next;
if (t->info<0) {
x=t->info;
del (first,last,t);
addr (first2,last2,x);
}
}
if (first2 == 0)
cout<<"\n Spisok ne izmenen \n";
else {
if (first == 0) {
first = first2;
last = last2;
}
else {
last->next = first2;
first2->prev = last;
last = last2;
}
cout<<"\n IZMEN SPISOK \n";
output (first);
}
getch();

}


Glory to Arstotzka!
 
WolfClanДата: Понедельник, 22.03.2010, 09:32 | Сообщение # 26
Группа: Удаленные





ПРОВЕРЯЕТ, ВХОДИТ ЛИ ДВУНАПРАВЛЕННЫЙ СПИСОК L2 В СПИСОК L1

void compare(node *&first, node *&first2)
{
node *p2=first2;
node *p=first;
while (p!=0)
{
if(p->info==p2->info)
{
p=p->next;
p2=p2->next;
}
else
{
p=p->next;
p2=first2;
}
}
if(p2!=0) cout<<"\n Spisok L2 ne vhodit v L1 \n";
else cout<<"\n Spisok L2 vhodit v L1 \n";
}

 
WolfClanДата: Понедельник, 22.03.2010, 12:08 | Сообщение # 27
Группа: Удаленные





ФУНКЦИЯ НАХОЖДЕНИЯ СУММЫ УЗЛОВ ДЕРЕВА

Обычная

int Summa (node *t)
{if (t==0)return 0;
else
return (t->key + summa (t->left)+summa(t->right);
}

Универсальная

int Summa (node *t)
{int sum;
if (t==0) return 0;
else
{sum=t->key,
return(sum+summa(t->left)+summa(t->right),)
}
}

 
WolfClanДата: Понедельник, 22.03.2010, 12:16 | Сообщение # 28
Группа: Удаленные





НАХОЖДЕНИЕ СУММЫ ОТРИЦАТЕЛЬНЫХ УЗЛОВ

int Summa (node *t)
{int s;
if(t==0) return 0;
else
{if(t->key>0)
s=t->key;
else s=0;
return(s+summa(t->left)+summa(t->right));
}
}

 
WolfClanДата: Понедельник, 22.03.2010, 12:20 | Сообщение # 29
Группа: Удаленные





НАХОЖДЕНИЕ КОЛИЧЕСТВА ОТРИЦАТЕЛЬНЫХ УЗЛОВ

int kol (node*t)
{int s;
if (t==0)return 0;
else
{if (t->key<0)s=1; else s=0;
return (s+kol(t->left)+kol(t->right),)
}
}

 
WolfClanДата: Понедельник, 22.03.2010, 13:10 | Сообщение # 30
Группа: Удаленные





НАХОЖДЕНИЕ МАКСИМАЛЬНЫХ ЭЛЕМЕНТОВ В УЗЛАХ

.....
#include <limits.h> \\ обязательно, что бы работал - INT_MAX
.....

(int b,r;
if (t==0) return - INT_MAX; \\ вообще вместо INT_MAX можно еще использовать число 32768, но всем пофиг.
else
{b=maxi(t->left);
if(t->key>b) b=t->key;
r=maxi(t->right);
if(r>b>b=r);
return b;
}

 
Форум ИС ИАТЭ » Учебка » Примеры программ на C++ » ОТДЕЛЬНЫЕ ЦИКЛЫ И ПРОЦЕДУРЫ
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:


ИАТЭ НИЯУ МИФИ ИС © 2024
Используются технологии uCoz