Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KURSAK.docx
Скачиваний:
10
Добавлен:
23.03.2015
Размер:
648.16 Кб
Скачать

Висновки

Отже, розробка трьох програм допомогла отримати практичні навички в роботі з порозрядними логічними операціями та операціями зсуву; створення функції заміни у рядку символів та роботі з одномірними та двомірними масивами.

Розроблені програми можуть повноцінно використатись у створенні інших проектів.

В даний час індустрія виробництва комп'ютерів та програмного забезпечення є однією з найбільш важливих сфер економіки розвинених країн. Щорічно у світі продаються десятки мільйонів комп'ютерів. Тільки в США обсяг продажів комп'ютерів складає десятки мільйонів доларів і постійно продовжує рости. У чому ж причини такого стрімкого зростання індустрії персональних комп'ютерів та їх порівняльна вигідність для багатьох ділових застосувань? Простота використання, забезпечена за допомогою діалогового способу взаємодії з комп'ютером.

Відносно високі можливості з переробки інформації, наявність програмного забезпечення, а також потужних систем для розробки нового програмного забезпечення.

C + + - модульна статично універсальна мова програмування загального призначення. Підтримує різні парадигми програмування, але, в порівнянні з його попередником - мовою Сі, - найбільшу увагу приділено підтримці об'єктно-орієнтованого і узагальненого програмування. Назва

«C + +» походить від Сі (C), в якому унарний оператор ++ позначає інкремент змінної. У 1990-х роках стала однією з найбільш широко застосовуваних мов програмування загального призначення.

При створенні C ++ прагнули зберегти сумісність з мовою Сі. Більшість програм на С справно працюватимуть і з компілятором C + +.

Крім цього, С + + успішно використовується як у багатьох додатках, так і в потужних операційних системах.

Visual C++ 2010 надає потужне і гнучке середовище розробки, що дозволяє створювати застосування для Microsoft Windows і застосування, засновані на Microsoft .NET. Це середовище можна використовувати як інтегроване середовище розробки, так і в якості окремих засобів.

Cписок викоростаних джерел

  1. Страуструп Б. “Язык программирования С++”.

2. Шилдт Г. “Искусство программирования на C++”.

3. wikipedia.com

4. msdn.microsoft.com

ДОДАТОК А: Алгоритм роботи побітових операцій

Int (main)

worker(int arg[]),

printer(int arg[])

signed int massive[] = {13, 41, -513, 53, -41, 12, -425, 52, 21},

worker(massive), printer(massive);

"Before: 13, 41, -513, 53, -41, 12, -425, 52, 21"

i=0; i<sizeof(arg), i++

if (arg[i]<0) arg[i]=arg[i] >> 2

elsearg[i]= arg[i]|=(0<<0)|(0<<4)

This is hex and dec values after conversion;

DEC value number %d is %d;

HEX value number %d is 0x%X

END

NO

YES

ДОДАТОК ДОДАТОК Б.1: Алгоритм функції заміни символів.

Int (main)

worker(int arg[]),

printer(int arg[])

Input text, press enter to parse

current=getchar())!='\n'

zam_number = zam((char*) &current)

putchar(current)

There was %d replacements

Return 0

NO

YES

ДОДАТОК Б.2: Алгоритм роботи функції заміни символів.

begin

space_detector, zam(char *s)

extern int space_detector, firstchar

count = 0,

int firstchar = 1

if (*s == ' '),

space_detector=1,

else if (space_detector== 1 || firstchar == 1)

NO

YES

*s = *s + ('A' - 'a')

space_detector = 0,

firstchar = 0,

count++

Return count

ДОДАТОК В.1: Алгоритм роботи з масивами.

begin

biggest_in_column

(float local_matrix[X_DIM][X_DIM], int column, int *cur_y)

i = 0,

current_biggest = 0.0f, i<Y_DIM, i++

if(current_biggest<local_matrix[column][i])

NO

YES

current_biggest=

local_matrix[column][i],

cur_y[column]=i

return current_biggest

ДОДАТОК В.2: Алгоритм роботи з масивами.

Int (main)

cur_y[X_DIM], matrix[X_DIM][Y_DIM], found_biggest[X_DIM],

i, t

summ = 0.0f

Enter matrix at %d on %d dimensions

i=0, i<Y_DIM, i++

t=0; t<X_DIM, t++

Number at [%d]x[%d]=,

t, i

"%f", &matrix[t][i]

i = 0; i<X_DIM; i++,

found_biggest[i]=

biggest_in_column

(matrix, i, cur_y)

"Biggest in column %d is %f at %d\n"

summ=summ+found_biggest[i]

Return 0

Summ is %f

Додаток Г: Лістинг програми роботи побітових операцій

#include <stdio.h>

void worker(int arg[]);///задання змінної worker

void printer(int arg[]);///задання змінної printer

int main() {

signed int massive[] = {13, 41, -513, 53, -41, 12, -425, 52, 21};///фіксований масив данних

printf("Before: 13, 41, -513, 53, -41, 12, -425, 52, 21");///вивід на екран числового масиву до дії перетворень

worker(massive);

printer(massive);

return 0;///повертання к нулю

}

void worker(int arg[]) {

int i; ///задання змінної///

for (i=0; i<sizeof(arg); i++) { ///умова для і, якщо вона менше довжини масиву, виконувати наступні дії///

if (arg[i]<0) { ///якщо аргумент і менше 0 роботи здвиг на два біти

arg[i]=arg[i] >> 2;

} else {

arg[i] = arg[i]|=(0<<0)|(0<<4); ///порозрядне зкидання 0 і 4 бітів

}

}

}

void printer(int arg[]) {

int i;

printf("This is hex and dec values after conversion\n"); ///вивід результатів на екран

for(i=0;i<sizeof(arg);i++){

printf("DEC value number %d is %d\n", i, arg[i]); ///вивід результатів на екран у десятковому форматі/// printf("HEX value number %d is 0x%X\n", i, arg[i]); ///вивід результатів на екран у шістнадцятирічному форматі///

}

}

Додаток Д: Лістинг програми функції заміни символів

#include <stdio.h>

#include "Second.h"

int main(){

/// оголошення змінних

char current;

int zam_number;

///запит на ввод тексту

printf("Input text, press enter to parse\n");

///умова пока змінна дорівнює кількості строкових символів, робити строкову заміну

while ((current=getchar())!='\n') {

zam_number = zam((char*) &current);

putchar(current);

}

putchar('\n');

///вивід на екран кількості зроблених замін

printf("There was %d replacements\n", zam_number);

return 0;

}

/*

* File: Second.h *

*/

/// проголошення змінної індикатора пробелів та лічильник у 0 із змінною першого символу у 1

int space_detector, count = 0;

int firstchar = 1;

///надання змінній параметра символьної заміни

int zam(char *s) {

///проголошення за допомогою зовнішнього модифікатора змінних детектора пробелів та першого символу

extern int space_detector, firstchar;

///умова, якшо символ заміни рівний пробелу, індикатор пробелів у стані 1

if (*s == ' ') {

space_detector = 1;

}

///якщо індикатор пробелів рівний 1 разом з змінною першого символа, робити заміну маленької букви на велику

else if (space_detector == 1 || firstchar == 1) {

*s = *s + ('A' - 'a');

///встановлення змінних у фазу 0

space_detector = 0;

firstchar = 0;

count++;

}

/// повертання до лічільника

return count;

}

Додаток Е: Лістинг програми роботи з масивами

////Вантажить стандартну бібліотеку введення-виводу

##include <stdio.h>

////Задає кількість рядків і стовпців в матриці

##define X_DIM 4

##define Y_DIM 4

////Інформує компілятор про функцію, яка буде використана за текстом раніше, ніж буде описана

float biggest_in_column(float local_matrix[X_DIM][Y_DIM], int column, int *cur_y);

main(){

////Створює масив завдовжки X_DIM, в який потім запишеться адреса найбільшого числа в стовпці

int cur_y[X_DIM];

////Створює двовимірний масив, з яким проводитимуться операції matrix[][] і масив для знайдених максимумів

float matrix[X_DIM][Y_DIM], found_biggest[X_DIM];

////Лічильники

int i, t = 0;

////Змінна для суми

float summ = 0.0f;

////Виводить запит на введення даних, натякаючи на розміри матриці в пристрій стандартного виводу

printf("Enter matrix at %d on %d dimensions\n", X_DIM, Y_DIM);

////Поки i менше Y_DIM перемикаються рядки

for(i=0; i<Y_DIM; i++){

////Поки t менше X_DIM перемикаються стовпці

for(t=0; t<X_DIM; t++){

////Друкує запит на введення даних за поточною адресою в матриці в пристрій стандартного виводу

printf("Number at [%d]x[%d]="t, i);

////Прочитує введення за поточною адресою в матриці.

scanf("%f", &matrix[t][i]);

}

}

////Поки i менше X_DIM (кількості стовпців) - перемикає стовпці від 0 до X_DIM

for (i = 0; i<X_DIM; i++){

////Призначає масиву для знайдених максимумів за адресою лічильника стовпців знайдений максимум в цьому стовпці

found_biggest[i]=biggest_in_column(matrix, i, cur_y);

////Друкує знайдений максимум в стовпці в пристрій стандартного виводу, вказуючи номер стовпця, само число і де в стовпці воно було знайдене

printf("Biggest in column %d is %0.2f at %d\n", i, found_biggest[i], cur_y[i]);

////Підсумовує поточний максимум з попереднім значенням (чи нулем, якщо це перший)

summ = summ + found_biggest[i];

}

////Під кінець програми виводить суму максимумів

printf("Summ is %0.2f", summ);

return 0;

}

////Сама функція пошуку максимуму в стовпці. Їй передається матриця, яка локально буде названа local_matrix

////а так само номер поточного стовпця і _покажчик_ на масив з адресами максимумів.

////float biggest_in_column(float local_matrix[X_DIM][Y_DIM], int column, int cur_y[Y_DIM])

float biggest_in_column(float local_matrix[X_DIM][Y_DIM], int column, int *cur_y){

////Лічильник

int i = 0;

////Задає поточний максимум як нуль, що б не було помилок

float current_biggest = 0.0f;

////Поки лічильник менше висоти стовпця

for (i=0; i<Y_DIM; i++){

////Порівнює чи більше поточне значення в цьому стовпці і в цьому рядку того, що зараз вважається максимумом і якщо так

if(current_biggest<local_matrix[column][i]){

////призначає максимуму поточне значення в цьому стовпці і в цьому рядку,

current_biggest=local_matrix[column][i];

////а так само записує в якому місці знаходиться це значення у цього стовпця

cur_y[column]=i;

}

}

////Повертає максимум в стовпці

return current_biggest;

41

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]