71509

Разработка и отладка алгоритмов и программ с использованием шаблонов классов и алгоритмов библиотеки STL

Лабораторная работа

Информатика, кибернетика и программирование

Цель работы: Получить практические навыки в разработке алгоритмов и написании программ с использованием шаблонов классов и алгоритмов библиотеки STL. Общая постановка. Дано: число N и последовательность a1, a2,... aN Создать шаблон класса, порождающий динамические одномерные массивы...

Русский

2014-11-08

812.16 KB

12 чел.

Лабораторная работа №21

Тема работы: Разработка и отладка алгоритмов и программ с использованием шаблонов классов и алгоритмов библиотеки STL.

Цель работы:Получить практические навыки в разработке алгоритмов и написании программ с использованием шаблонов классов и алгоритмов библиотеки STL.

Общая постановка. Дано: число N и последовательность a1, a2, … aN
Создать шаблон класса, порождающий динамические одномерные массивы с элементами различных типов (вещественные, целочисленные, символьные и т.д.). Тип данных и результат являются параметрами по отношению к классу, программа должна иметь методы инициализации, конструктор, деструктор, метод просмотра значений созданного массива, согласно заданному алгоритму.

a1, -a1*a2, +a1*a2*a3, … ,(-1)N*a1*a2*…aN;

Дан массив слов. Преобразовать массив слов, заменив во всех словах все группы символов “ab” на символы “ссс”. Получить подстроку, взяв от каждого слова массива длиной более 1 символа по две конечных буквы. Сформировать предложение из тех слов массива, которые не содержат в своем составе символов из полученной подстроки

Приложение 1

Блок схема задачи 1

 

Приложение 1

Блок схема задачи 2

Приложение 2

Исходный модуль задачи 1

#include "stdafx.h"

#define SIZE 255

#include "iostream"

#include "clocale"

#include "conio.h"

#include "stdlib.h"

#include "string.h"

#include "stdio.h"

#include "cstdlib"

#include "iomanip"

#pragma warning(disable:4996)

using namespace std;

template<class type> class A

{    

type *t,*newt;

int size;

public:

voidinit(int n, type q[]);

void get();

void run();

};

template<class type> void A <type>::init(int n, type q[])

{

t=new type[n];

for(int i=0;i<n;i++)

t[i]=q[i];

size=n;

}

template<class type> void A <type>::run()

{

newt=new type [size];

for(int i=0; i<size;i++)

{

pr=1;

newt[i]=(pr+(pow(-1,i)*t[i]));

}

}

template<class type> void A <type>::get()

{

for (int i=0;i<size;i++)

cout<<newt[i]<<endl;

}

int _tmain(intargc, _TCHAR* argv[])

{  

setlocale(LC_ALL,"Russian");  

inti,n,*n1;

cout<<"Ââåäèòå N: ";

cin>>n;

n1=new int [n];

for(i=0;i<n;i++)

{

cout<<"Ââåäèòå N["<<i<<"]: ";

cin>>n1[i];

}

A<int> a;

a.init(n,n1);

a.run();

a.get();

getch();   

return 0;

}

Исходный модуль задачи 2

#include "stdafx.h"

#include "windows.h"

#include "iostream"

#include "string.h"

#include "math.h"

#pragma argsused

#include "conio"

std::stringToRus(conststd::string &in)

{

char*buff= new char[in.length()+1];

CharToOem(in.c_str(),buff);

std::string out(buff);

delete [] buff;

return out;

}

int main(incargc,char* argv[])

{

string str1("ab.");

string str2("ccc".);

cout<<ToRus("Исходные строки:\n");

cout<< "str1: " <<ToRus(str1)<<endl;

cout<< "str2: " << str2 <<"\n\n";

\\

cout<<ToRus(вставляем строку str2 в строку str1:\n");

str1.insert(5,str2);

cout<<ToRus(str1) << "\n\n";

cout<<ToRus("Удаляем 7 символов из строки str1:\n");

str1.erase(5,7);

cout<<ToRus(str1) << "\n\n";

\\

cout<<ToRus("Заменяем 5 символа в str1 cтрокой str2:\n");

str1.replace(5, 2, str2);

cout<<ToRus(str1) <<endl;

getch();

return 0;

}


 

А также другие работы, которые могут Вас заинтересовать

65851. Строение микро-ЭВМ (архитектура) 179.5 KB
  ОБ операционный блок производит прием и временное хранение исходных данных их преобразование и передачу результата обработки следующим устройствам. Кроме того ОБ проверяет соответствия результата обработки данных заранее обусловленным признакам например отрицательные числа нули четность и т.
65853. Вибір архітектури обчислювальної мережі. Загальна схема взаємодії локальних, міських та глобальних мереж. Вибір локальної обчислювальної мережі 373.5 KB
  Мета: Вивчити cхему взаємозвязку різних типів мереж: локальних міських та глобальних. На основі поставлених задач вміти обирати архітектуру обчислювальної мережі. Вибір локальної обчислювальної мережі Загальна схема взаємодії локальних міських і глобальних обчислювальних...
65854. Эволюция маркетинговых концепций. Современные тенденции маркетинга (международного маркетинга) 61.46 KB
  Современные тенденции маркетинга международного маркетинга Концепция маркетинга генеральный замысел действий фирмы или предприятия на рынке определяющий её стратегию действий выбор системы целей и идеи бизнеса. Если исходить из классификации теории управления маркетингом предложенной профессором маркетинга...
65855. Французская печать XIX века 30.5 KB
  Этапы: Печать эпохи Наполеона I Пресса эпохи реставрации Журналистика июльской монархии Французская печать второй половины 19 века. Перу Наполеона принадлежит 32 тома. Концепция печати Наполеона. У Наполеона было много законов связанных с прессой.
65856. Эпос народов средневековой Европы 46 KB
  Мир эпических текстов как правило полярный его условно можно обозначить как мир своих и чужих как мир добра и зла мир человеческий хтонический демонический несмотря на то что эти миры имеют противоположную компонацию структура этих двух миров зачастую очень схожа.
65857. Феодальная раздробленность в русских землях. Характеристика отдельных княжеств 39 KB
  В середине 12 века князь Юрий Долгорукий несколько раз пытался взять город. Юрий силой захватил Коломну окончательно присоединил Переславль и начал войну с Тверью. В Орде Юрий обвинил Михаила в том что тот не платит дань и в отравлении ханской сестры.
65858. Своеобразие славяно-русского язычества 43.5 KB
  Функции Богов часто переплетались между собой дублировали друг друга. Сначала душу хранит Бог а после жизни очистившись от грехов душа вновь возвращается к нему. Берегиня это богиня породившая всё сущное. Хорс символизировал бога.