Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Розрахункова робота
Предмет:
Алгоритми і структури даних

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ Національний університет «Львівська політехніка» ІЕПТ ім. В’ячеслава Чорновола Кафедра загальної екології та екоінформаційних систем РОЗРАХУНКОВА РОБОТА з предмету: «Алгоритми і структури даних» Варіант 5 Львів – 2012 Тема: Обробка даних рядкового типу Мета роботи: ознайомлення з особливостями рядкового типу даних, алгоритми їх обробки, розвиток навичок програмної реалізації обробки рядків. Завдання: Дано натуральне число n, яке вводиться з клавіатури. Треба вивести на екран символьне представлення цього числа у вигляді послідовності цифр і пропусків, які відокремлюють групи по три цифри починаючи справа. Наприклад, n=12354376, на екрані має бути виведено 12 354 376. Необхідно розробити алгоритм і скласти програму. Алгоритм у вигляді блок-схеми Код програми # include <iostream.h> #include <string.h> # include <conio.h> int main() {char a[300]; int i=0; cout<<"Vvedit naturalne chuslo a="; cin.getline(a,sizeof(a)); cout<<"\n"<<"Rozdilene chuslo v grupu po 3:\n\n"; do {cout<<a[i]<<a[i+1]<<a[i+2]<<"\t"; i=i+3; } while(a[i+4]!='\0'); getch(); return 0;} Результат роботи програми / Тема: Фундаментальні структури даних Мета роботи: ознайомлення з фундаментальними структурами даних, алгоритмами їх обробки, розвиток навичок програмування. Завдання: Знайти кількість «щасливих» квитків з номерами від 000000 до 999999 включно. «Щасливим» називають квиток, якщо сума трьох лівих цифр дорівнює сумі трьох правих цифр (наприклад 248707). Розробити алгоритм і скласти програму для рішення задачі. Алгоритм у вигляді блок-схеми Код програми # include <iostream.h> # include <math.h> # include <conio.h> int main() {int i,j,k,l,m; int count=0; for(int i=0;i<10;i++) for(int j=0;j<10;j++) for(int k=0;k<10;k++) for(int l=0;l<10;l++) for(int m=0;m<10;m++) for(int n=0;n<10;n++) if(i+j+k==n+l+m) { cout<<i<<j<<k<<l<<m<<n<<" suma="<<(i+j+k)<<endl; count++; } cout<<"count="<<count<<"\n"; getch(); return 0;} Результат роботи програми / Тема: Динамічні структури даних. Організація даних у списки. Мета роботи: ознайомлення з динамічними структурами даних, вивчення методів їх створення у програмах і алгоритмів їх обробки, формування навичок роботи зі списковими структурами даних. Завдання: Написати програму для додавання нового елемента в список після елемента з вказаним порядковим номером (тобто вставка не в кінець списку). Код програми #include <stdio.h> #include <alloc.h> #include <conio.h> struct element { int info; struct element *next,*prev; }*p1,*po,*el1,*el2,*p,*t; int znach,n,m=1,k=1; void main() { clrscr(); puts("VVEDIT ZNACHENNYA ELEMENTIV"); puts("---------------------------\n"); scanf("%d",&znach); p1=(struct element *)malloc(sizeof(struct element)); p1->info=znach; p1->next=NULL; p1->prev=NULL; el1=(struct element *)malloc(sizeof(struct element)); el1=p1; scanf("%d",&znach); while(znach!=0) {el2=(struct element *)malloc(sizeof(struct element)); el2->info=znach; el2->prev=el1; el2->next=NULL; el1->next=el2; el1=el2; po=el2; scanf("%d",&znach);m++;} el1=p1; puts("\n"); puts("ELEMENTY SPYSKU"); puts("---------------------------\n"); do {printf("%d\n",el1->info); el1=el1->next;} while(el1!=NULL); puts("\n"); puts("vvedit element"); scanf("%d",&znach); puts("na yaku pozyciyu vstavyty"); scanf("%d",&n); puts("\n"); el1=p1; while(n>m) {puts("V spysku nema stilky elementiv, vvedit inshu pozyciyu"); scanf("%d",&n);} if(n==1) {el2=(struct element *)malloc(sizeof(struct element)); el2->info=znach; el2->prev=NULL; el2->next=el1; p1=el2;} else if(n==m) {el2=(struct element *)malloc(sizeof(struct element)); el2->info=znach; el2->prev=po; el2->next=NULL; po->next=el2; } else {while(k!=m) {if(k==n-1) t=el1; if(k==n) p=el1; el1=el1->next; k++;} el2=(struct element *)malloc(sizeof(struct element)); el2->info=znach; el2->prev=t; t->next=el2; el2->next=p; p->prev=el2;} el1=p1; puts("NOVYI SPYSOK"); puts("---------------------------\n"); do {printf("%d\n",el1->info); el1=el1->next;} while(el1!=NULL); getch();} Результат роботи програми Теми: Сортування масивів і аналіз алгоритмів Мета роботи: Вивчення різних методів зовнішнього і внутрішнього сортування, дослідження і аналіз алгоритмів на прикладі алгоритмів сортування масивів. Завдання: Скласти програму для сортування масиву методом простого вибору і методом бульбашки. 1.Сортування масиву методом простого вибору Блок-схема Код програми # include <iostream.h> # include <conio.h> const int n=8; void main(){ int x,j; int a[n]; cout<<"Sortuvanna masuvu prostumu vstavkamu\n\n"; cout<<"Vvedit elementu masuvu:\n\n"; for(int i=1; i<=n; i++) cin>>a[i]; for(int i=2; i<=n;i++) {x=a[i]; a[0]=x; j=i-1; while(x<a[j]) {a[j+1]=a[j]; j=j-1; } a[j+1]=x; } cout<<"\nPosortovanuy masuv:\n\n"; for(int i=1; i<=n; i++) cout<<a[i]<<" "; getch(); } Результат роботи програми / 2. Cортування масиву методом бульбашки Блок-схема Код програми #include <iostream.h> #include <stdlib.h> #include <conio.h> const int SIZE = 25; int array[SIZE]; // zapovnenna masuvu vupadkovumu chuslamu void GenerationArray() { // pruvazka po chasu dla generatsii chusel bez povtoren srand(time(0)); for (int i=0; i<SIZE; i++) { // zapovnenna masuvu chuslamu <100 array[i] = rand()%100; } } // Vvuvedenna masuvu na ekran void ShowArray() { for (int i=0; i<SIZE; i++) { cout << array[i] << " "; } cout << endl; } int main() { cout<<"Masuv zgenerovanuh vupadkovuh chusel:\n\n"; int temp; GenerationArray(); ShowArray(); // sortuvanna bulbashkou for (int x=SIZE; x>0; x--) { for (int i=0; i<SIZE-1; i++) { // aksho chuslo bilshe za poperedne if (array[i] > array[i+1]) { // minnaemo ih mistsamu temp = array[i]; array[i] = array[i+1]; array[i+1] = temp; } } } cout<<"\nPosortovanuy masuv\n\n"; ShowArray(); getch(); return 0; } Результат роботи програми / Тема: Рекурсивні структури даних. Графи Мета роботи: ознайомлення з різними рекурсивними структурами даних (дерева, графи), вивчення і дослідження рекурсивних структур на прикладі графів. Завдання: Написати програму, яка шукає у графі вершину, з котрої виходить найбільша кількість ребер. Блок схема Код програми // Graf.cpp: // #include "stdafx.h" #include<iostream> #include<conio.h> #include<time.h> #include<windows.h> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int matr[8][8] = { {0,1,1,1,0,0,0,0}, {1,0,1,0,0,0,0,0}, {1,1,0,0,0,0,1,0}, {1,0,0,0,1,0,0,0}, {0,0,0,1,0,1,0,0}, {0,0,0,0,1,0,1,0}, {1,0,1,0,1,1,0,1}, {0,0,0,0,0,0,1,0} }; cout<<"Matrix inside\n"; int s=0; int i = 0, j = 0; while(i < 8) { for(j = 0; j < 8; j++) { cout<<matr[i][j]<<" "; if(matr[i][j] == 1) s = s + matr[i][j]; } cout<<", stepin' vershunu "<<i+1<<" = "<<s<<"\n"; s = 0; i++; } int t=1; int max=matr[0][0]; for(i = 0; i < 8; i++) {for(j = 0; j < 8; j++) { if(matr[i][j]>max) max=matr[i][j]; t=i; } } cout<<"\nVershuna z yakoi vuhodut naybilsha kilkist reber # "<<t; _getch(); return 0; } Результат роботи програми /
Антиботан аватар за замовчуванням

11.11.2013 00:11-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!