Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Заказы "Сделайте все за меня"


Рекомендуемые сообщения

vampir4eg

Практически любая сложная сортировка поддается распараллеливанию по потокам. Просто посмотри в Яндексе "многопоточная сортировка". Например, тут. Там, правда, сортируются числа, но числа или строки сортировать - разницы нет. Кроме того, там функцию получения случайных чисел random надо, скорее всего, заменить на rand из VS.

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте!

Нужно запрограммировать алгоритмы умножения матриц (3 метода), прилагаю файл в word, там все расписано.

Язык программирования желательно C#, но можно и С++.

Благодарить буду вечно!

3 метода.doc

3 метода.doc

Ссылка на комментарий
Поделиться на другие сайты

Всем привет! Помогите, пожалуйста, решить (паскаль abc):

Дано натуральное число n. Получить действительную матрицу [aij] i,j=1, ..., n, для которой

Без1.JPG

post-114749-0-51552500-1356282813_thumb.

Ссылка на комментарий
Поделиться на другие сайты

Кронус

var n,i,j:integer; p:real; a:array[1..20,1..20]of real; beginwrite('n ? '); readln(n); for i:=1 to n do for j:=1 to n do a[i,j]:=1/(i+j); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:8:4); writeln end;writeln;for i:=1 to n do for j:=i+1 to n do a[i,j]:=sin(i+j);for i:=1 to n do for j:=1 to i-1 do begin p:=(i+j)/(2*i+3*j); a[i,j]:=arctan(p/sqrt(1-p*p)) end;for i:=1 to n do a[i,i]:=1;for i:=1 to n do begin for j:=1 to n do write(a[i,j]:8:4); writeln end;readlnend.
Ссылка на комментарий
Поделиться на другие сайты

Доброго вечера всем! Тролль, нужна Ваша помощь!

Составить процедуру подсчета числа узлов заданного бинарного дерева. (на си или с++)

Изменено пользователем Yezhishe
Ссылка на комментарий
Поделиться на другие сайты

Wind327

Совсем не обязательно Тролль, это форум...

По теме - слегка упростим программу из этой темы для NickLid’а:

#include <iostream>using namespace std;struct Tree{Tree *L,*R;};int ct(Tree *w,int l){int d=0; if(w->L)d+=ct(w->L,l+1); if(w->R)d+=ct(w->R,l+1); return ++d;}void al(Tree **w){Tree* k; *w=new Tree; k=*w; k->L=0;k->R=0;} // добавление узла в деревоint main(){Tree *T=0; al(&T); al(&T->L); al(&T->R); al(&T->L->L); al(&T->L->L->R); al(&T->L->L->L); al(&T->R->L);// создали тестовое дерево из семи узловcout<<ct(T,0)<<endl; cin.get();}
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Уважаемый Тролль! очень нужна ваша помощь!

написать данную программку на С++ (через потоки)

Описать структуру с именем NOTE, содержащую следующие поля:

- фамилия, имя;

- номер телефона;

- дата рождения;

Написать программу выполняющую следующие действия:

- ввод с клавиатуры данных в массив, состоязий из восьми элементов типа NOTE; записи должны быть упорядочены по трем перывм цифрам номера телефона ;

- вывод на экран информации о человеке, чья фамилия введена с клавиатуры;

- если такого нет , вывести соответсвующее сообщение.

з.ы. в отсортированном списке должны быть все люди. а потом отдельно, удовлетворяющие параметрам поиска.

Ссылка на комментарий
Поделиться на другие сайты

karok4

#include <iostream>#include <string.h>using namespace std;int main(){const int n=8; char Name[30]; bool b;struct NOTE{char NAME[30],TELE[15]; unsigned BDAY[3];}BNOTE[n],T;for(int i=0;i<n;i++){  cout<<endl<<"Full name? "; cin.getline(BNOTE[i].NAME,29);  cout<<"Phone number? "; cin>>BNOTE[i].TELE;  cout<<"Birthday (DD MM YYYY)? ";  for(int j=0;j<3;j++)cin>>BNOTE[i].BDAY[j]; cin.get();}for(int i=0;i<n;i++)for(int j=0;j<n-i-1;j++)  if(strncmp(BNOTE[j].TELE,BNOTE[j+1].TELE,3)>0)  {T=BNOTE[j];BNOTE[j]=BNOTE[j+1];BNOTE[j+1]=T;}cout<<endl<<"Full list: "<<endl<<endl;for(int i=0;i<n;i++)  cout<<"Full name: "<<BNOTE[i].NAME<<endl<<"Phone number: "<<  BNOTE[i].TELE<<endl<<"Birthday:"<<(BNOTE[i].BDAY[0]<=9?" 0":" ")<<  BNOTE[i].BDAY[0]<<(BNOTE[i].BDAY[1]<=9?".0":".")<<BNOTE[i].BDAY[1]<<  '.'<<BNOTE[i].BDAY[2]<<endl<<endl;cout<<endl<<"Surname for the search? "; cin>>Name; b=true; cout<<endl;for(int i=0;i<n;i++) if(!strncmp(Name,BNOTE[i].NAME,strlen(Name))&&BNOTE[i].NAME[strlen(Name)]==' ')  cout<<"Full name: "<<BNOTE[i].NAME<<endl<<"Phone number: "<<  BNOTE[i].TELE<<endl<<"Birthday:"<<(BNOTE[i].BDAY[0]<=9?" 0":" ")<<  BNOTE[i].BDAY[0]<<(BNOTE[i].BDAY[1]<=9?".0":".")<<BNOTE[i].BDAY[1]<<  '.'<<BNOTE[i].BDAY[2]<<endl<<endl, b=false;if(b)cout<<endl<<"No such person!"<<endl<<endl;cin.get(); cin.get();}

Для проверки целесообразно, чтобы не вводить данные восьми людей, заменить n=8 на n=2 или n=3.

P.S. Цитирую мой предыдущий пост тут: "Совсем не обязательно Тролль, это форум..."

Ссылка на комментарий
Поделиться на другие сайты

karok4

#include <iostream>#include <string.h>using namespace std;int main(){const int n=8; char Name[30]; bool b;struct NOTE{char NAME[30],TELE[15]; unsigned BDAY[3];}BNOTE[n],T;for(int i=0;i<n;i++){  cout<<endl<<"Full name? "; cin.getline(BNOTE[i].NAME,29);  cout<<"Phone number? "; cin>>BNOTE[i].TELE;  cout<<"Birthday (DD MM YYYY)? ";  for(int j=0;j<3;j++)cin>>BNOTE[i].BDAY[j]; cin.get();}for(int i=0;i<n;i++)for(int j=0;j<n-i-1;j++)  if(strncmp(BNOTE[j].TELE,BNOTE[j+1].TELE,3)>0)  {T=BNOTE[j];BNOTE[j]=BNOTE[j+1];BNOTE[j+1]=T;}cout<<endl<<"Full list: "<<endl<<endl;for(int i=0;i<n;i++)  cout<<"Full name: "<<BNOTE[i].NAME<<endl<<"Phone number: "<<  BNOTE[i].TELE<<endl<<"Birthday:"<<(BNOTE[i].BDAY[0]<=9?" 0":" ")<<  BNOTE[i].BDAY[0]<<(BNOTE[i].BDAY[1]<=9?".0":".")<<BNOTE[i].BDAY[1]<<  '.'<<BNOTE[i].BDAY[2]<<endl<<endl;cout<<endl<<"Surname for the search? "; cin>>Name; b=true; cout<<endl;for(int i=0;i<n;i++) if(!strncmp(Name,BNOTE[i].NAME,strlen(Name))&&BNOTE[i].NAME[strlen(Name)]==' ')  cout<<"Full name: "<<BNOTE[i].NAME<<endl<<"Phone number: "<<  BNOTE[i].TELE<<endl<<"Birthday:"<<(BNOTE[i].BDAY[0]<=9?" 0":" ")<<  BNOTE[i].BDAY[0]<<(BNOTE[i].BDAY[1]<=9?".0":".")<<BNOTE[i].BDAY[1]<<  '.'<<BNOTE[i].BDAY[2]<<endl<<endl, b=false;if(b)cout<<endl<<"No such person!"<<endl<<endl;cin.get(); cin.get();}

Для проверки целесообразно, чтобы не вводить данные восьми людей, заменить n=8 на n=2 или n=3.

P.S. Цитирую мой предыдущий пост тут: "Совсем не обязательно Тролль, это форум..."

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

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Доброго времени суток.

Нужна программа на С++

Даны действительные числа a1, ..., a20. Преобразовать эту последовательность по правилу: большее из двух чисел ai и a10+i (i=1,...,10) принять в качестве нового значения ai, а меньшее – в качестве нового значения a10+i.

Ссылка на комментарий
Поделиться на другие сайты

СЫРОК

#include<iostream>using namespace std;int main(){const int n=20, k=n/2; float a[n],b;cout<<"Enter "<<n<<" numbers: "<<endl; for(int i=0;i<n;i++)cin>>a[i];for(int i=0;i<k;i++)if(a[i]<a[i+k]){b=a[i]; a[i]=a[i+k]; a[i+k]=b;}for(int i=0;i<n;i++)cout<<a[i]<<' '; cout<<endl; cin.get(); cin.get();}

Для проверки, чтобы не вводить двадцать значений, лучше заменить n=20 на n=6 или n=8.

P.S. Немного подкорректировал для более компактного вывода.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

СЫРОК

#include<iostream>using namespace std;int main(){const int n=20, k=n/2; float a[n],b;cout<<"Enter "<<n<<" numbers: "<<endl; for(int i=0;i<n;i++)cin>>a[i];for(int i=0;i<k;i++)if(a[i]<a[i+k]){b=a[i]; a[i]=a[i+k]; a[i+k]=b;}for(int i=0;i<n;i++)cout<<a[i]<<' '; cout<<endl; cin.get(); cin.get();}

Для проверки, чтобы не вводить двадцать значений, лучше заменить n=20 на n=6 или n=8.

P.S. Немного подкорректировал для более компактного вывода.

Спасибо большое. Только вот проверить не удается( Вылазиет куча ошибок

c:\program files (x86)\microsoft visual studio 9.0\vc\include\ostream(940): or 'std::basic_ostream<_Elem,_Traits> &std::endl(std::basic_ostream<_Elem,_Traits> &)'

1>c:\users\cbipok\documents\visual studio 2008\projects\kontr20\kontr20\kontr20.cpp(15) : error C2065: 'cin' : undeclared identifier

1>c:\users\cbipok\documents\visual studio 2008\projects\kontr20\kontr20\kontr20.cpp(15) : error C2228: left of '.get' must have class/struct/union

1> type is ''unknown-type''

1>c:\users\cbipok\documents\visual studio 2008\projects\kontr20\kontr20\kontr20.cpp(15) : error C2065: 'cin' : undeclared identifier

1>c:\users\cbipok\documents\visual studio 2008\projects\kontr20\kontr20\kontr20.cpp(15) : error C2228: left of '.get' must have class/struct/union

1> type is ''unknown-type''

1>Build log was saved at "file://c:\Users\CbIPOK\Documents\Visual Studio 2008\Projects\kontr20\kontr20\Debug\BuildLog.htm"

1>kontr20 - 10 error(s), 1 warning(s)

Ссылка на комментарий
Поделиться на другие сайты

СЫРОК

Это у тебя что-то с настройками Visual Studio. Не подключается файл iostream, остальное - следствия.

Попробуй запустить вариант на чистом C:

#include<stdio.h>#define n 20int main(){int k=n/2; float a[n],b;printf("Enter %d numbers: \n",n); for(int i=0;i<n;i++)scanf("%f",&a[i]);for(int i=0;i<k;i++)if(a[i]<a[i+k]){b=a[i]; a[i]=a[i+k]; a[i+k]=b;}for(int i=0;i<n;i++)printf("%f ",a[i]); printf("\n"); getchar(); getchar();}
Ссылка на комментарий
Поделиться на другие сайты

СЫРОК

По твоей просьбе из ЛС - комментарии к программе:

#include<iostream> // подключение заголовочного файла для связи с cin и cout using namespace std; // подключение стандартного пространства именint main(){const int n=20, k=n/2; float a[n],b; // объявление констант, массива и вспомогательной переменной //   для обмена значений элементов массива cout<<"Enter "<<n<<" numbers: "<<endl; for(int i=0;i<n;i++)cin>>a[i]; // вывод подсказки на ввод значений массива и ввод их в циклеfor(int i=0;i<k;i++)if(a[i]<a[i+k]){b=a[i]; a[i]=a[i+k]; a[i+k]=b;} // проход до середины цикла, сравнение элементов с начала массива и cо сдвигом на полмассива//   и обмен их значений при необходимостиfor(int i=0;i<n;i++)cout<<a[i]<<' '; cout<<endl; cin.get(); cin.get();}// вывод в цикле значений элементов полученного массива //   и ожидание нажатия Enter для закрытия окна вывода
Ссылка на комментарий
Поделиться на другие сайты

Здравствйте! помогите пожалуйста, не получается в коде сделать ввод из файла( (задание осуществить циклический сдвиг матрицы)

#include <math.h>#include <iostream>#include <fstream>#include <iomanip>using namespace std;double GG ( double a[10][10], int p,int n,int m){int i, j, k ;double temp,temp2,temp3;for(i=0; i < n/2; i++){for(int z = p; z>0 ; z--) //кол-во сдвигов - к{for(j = i, temp = a[i][j]; j < n-1-i; j++){temp2 = a[i][j+1];a[i][j+1] = temp;temp=temp2;}for(k = i+1; k < m-i; k++){temp3=temp;temp=a[k][j];a[k][j]=temp3;}for( j--, k--; j >= i; j--){temp3=temp;temp=a[k][j];a[k][j]=temp3;}for(j++, k--; k >= i; k--){temp3=temp;temp=a[k][j];a[k][j]=temp3;}}}return a[10][10];}int main(){int p, n, m, i, j;double a[10][10];ifstream read("input.txt");if (!read) {cout << "Файл не найден!" << endl;system ("PAUSE");return 1;}read >> n;//выделение памятиint **a = new int *[n];for (i=0; i<n; i++)a[i] = new int [n];//считывание массиваfor (i=0; i<n; i++) {for (j=0; j<n; j++)read >> a[i][j];}cout << "Ваш массив:" << endl;for (i=0; i<n; i++) {for (j=0; j<n; j++)cout << setw(3) << a[i][j] << " ";cout << endl;return 0;}
Изменено пользователем karok4
Ссылка на комментарий
Поделиться на другие сайты

karok4

Я вообще не понимаю, как ты смог это скомпилировать. Имя а в функции main у тебя, например, определено дважды и означает разные вещи.

Что имеется в виду под "циклическим сдвигом матрицы"?

Ссылка на комментарий
Поделиться на другие сайты

Помогите решить эту задачу:

Осуществить циклический сдвиг элементов квадратной матрицы размерности М х N вправо на К элементов следующим образом:

элементы 1-го строке сдвигаются в последний столбец сверху вниз,

из него-в последнюю строку справа налево, из него - в первый столбец снизу вверх, из него в первую строку; для остальных жл-ов аналогично.

#include <stdio.h>#include <iostream>#include <conio.h>using namespace std;double GG ( double a[10][10], int p,int n,int m){int i, j, k ;double temp,temp2,temp3;for(i=0; i < n/2; i++){for(int z = p; z>0 ; z--) //кол-во сдвигов - к{for(j = i, temp = a[i][j]; j < n-1-i; j++){temp2 = a[i][j+1];a[i][j+1] = temp;temp=temp2;}for(k = i+1; k < m-i; k++){temp3=temp;temp=a[k][j];a[k][j]=temp3;}for( j--, k--; j >= i; j--){temp3=temp;temp=a[k][j];a[k][j]=temp3;}for(j++, k--; k >= i; k--){temp3=temp;temp=a[k][j];a[k][j]=temp3;}}}return a[10][10];}int main(){int p, n, m, i, j;double a[10][10];{cout << "Vvedite n,m" << endl;cin >> n;cin >> m;/*n=4;m=4;*/}cout << "Vvedite elementy matricy"<< endl;for(i=0;i<n;i++)for(j=0;j<m;j++){cin >> a[i][j];}{cout<<"Vvedite k\n";cin>>p;GG(a,p,n,m);for(i=0;i<n;i++){for(j=0;j<m;j++){cout.setf(ios::fixed);cout.precision(0);cout<<a[i][j]<<" ";}cout<<endl;}getch();}return 0;}

ввод из файла жолжен быть

Ссылка на комментарий
Поделиться на другие сайты

karok4

#include<iostream>#include<fstream>#include<cmath>using namespace std;int main(){int p,z,i,j,k,t,n=0; ifstream r;r.open("input.txt");if(!r){cout<<"No file!"<<endl; cin.get(); return 1;}while(r.good()){r>>k; n++;} r.close();n=int(sqrt(n)+.01); cout<<n<<endl;int **a=new int *[n]; for(i=0;i<n;i++)a[i]=new int[n];r.open("input.txt"); for(i=0;i<n;i++)for(j=0;j<n;j++)r>>a[i][j]; r.close();cout<<"Shift? "; cin>>k; cout<<endl;for(i=0;i<n;i++){for(j=0;j<n;j++)cout.width(4),cout<<a[i][j]; cout<<endl;}for(p=0;p<k;p++)for(z=0;z<n/2;z++){  t=a[z][n-1-z];  for(j=n-1-z;j>z;j--)a[z][j]=a[z][j-1];  for(j=z;j<n-1-z;j++)a[j][z]=a[j+1][z];  for(j=z;j<n-1-z;j++)a[n-1-z][j]=a[n-1-z][j+1];  for(j=n-1-z;j>z+1;j--)a[j][n-1-z]=a[j-1][n-1-z];  a[z+1][n-1-z]=t;}cout<<endl;for(i=0;i<n;i++){for(j=0;j<n;j++)cout.width(4),cout<<a[i][j]; cout<<endl;}cin.get(); cin.get(); return 0;}

Размер матрицы определяется автоматически по количеству чисел во входном файле input.txt, например, для размера 4, в нем должно быть 16 чисел, то есть файл будет таким:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

(числа, конечно, могут быть произвольными, по идущим по порядку легче отследить работу).

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

karok4

#include<iostream>#include<fstream>#include<cmath>using namespace std;int main(){int p,z,i,j,k,t,n=0; ifstream r;r.open("input.txt");if(!r){cout<<"No file!"<<endl; cin.get(); return 1;}while(r.good()){r>>k; n++;} r.close();n=int(sqrt(n)+.01); cout<<n<<endl;int **a=new int *[n]; for(i=0;i<n;i++)a[i]=new int[n];r.open("input.txt"); for(i=0;i<n;i++)for(j=0;j<n;j++)r>>a[i][j]; r.close();cout<<"Shift? "; cin>>k; cout<<endl;for(i=0;i<n;i++){for(j=0;j<n;j++)cout.width(4),cout<<a[i][j]; cout<<endl;}for(p=0;p<k;p++)for(z=0;z<n/2;z++){  t=a[z][n-1-z];  for(j=n-1-z;j>z;j--)a[z][j]=a[z][j-1];  for(j=z;j<n-1-z;j++)a[j][z]=a[j+1][z];  for(j=z;j<n-1-z;j++)a[n-1-z][j]=a[n-1-z][j+1];  for(j=n-1-z;j>z+1;j--)a[j][n-1-z]=a[j-1][n-1-z];  a[z+1][n-1-z]=t;}cout<<endl;for(i=0;i<n;i++){for(j=0;j<n;j++)cout.width(4),cout<<a[i][j]; cout<<endl;}cin.get(); cin.get(); return 0;}

Размер матрицы определяется автоматически по количеству чисел во входном файле input.txt, например, для размера 4, в нем должно быть 16 чисел, то есть файл будет таким:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

(числа, конечно, могут быть произвольными, по идущим по порядку легче отследить работу).

спасибо огромное!

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Здравствуйте. Помогите, пожалуйста, с программой на С++. Условие звучит так:

  1. Разработать шаблон класса для работы с двусторонней очередью (деком), выполненной в виде двусвязного списка. Для разрабатываемого шаблона обязательно определите:
    • конструктор по умолчанию, конструктор копирования, конструктор с параметрами (массив объектов), деструктор;
    • оператор присваивания, оператор [ ] (доступ к элементу по его номеру с начала очереди);
    • добавление элемента в начало или конец , удаление элемента из начала или конца ;
    • метод, выводящий содержимое очереди в указанный поток от начала к концу, метод, выводящий содержимое очереди в указанный поток от конца к началу,
    • поиск номера элемента в очереди.
    • Пользовательский тип – авто на ремонте в СТО (госномер, марка, дата, стоимость).
      Начала писать код, но что-то не получается с конструктором. Никак не пойму, в чем дело. Вот код:
      //Deque.h	#ifndef _DEQUE_H_	#define _DEQUE_H_	#include<iostream>		template <class T>	class Deque	{	private:	struct Node	{	  Node* next;	  Node* previous;	  T info;	  Node(T data=0){ info=data; next=NULL; previous=NULL;}	};	Node *head;	Node *tail;	int count;	public:	Deque();	//Deque(const Deque& D);	~Deque();	bool isEmpty() const;	//void push_front(T data);	int size() { return count;}	};	#endif		//Deque.cpp	#include"Deque.h"	#include<iostream>	using namespace std;	template <class T>  Deque <T> ::Deque(): head(0), tail(0), count(0)	{}		template <class T>  Deque <T> :: ~Deque()	{	while (head!=0)		 {			 tail=head->next;			 delete head;			 head=tail;		 }	}	template <class T> bool Deque <T> ::isEmpty() const	{	return head==0;	}		//main.cpp	#include<iostream>	#include"Deque.h"	using namespace std;	int main()	{	Deque <int> d;	return 0;	}


      Компилятор выдает:
      Error 1 error LNK2019: unresolved external symbol "public: __thiscall Deque<int>::~Deque<int>(void)" (??1?$Deque@H@@QAE@XZ) referenced in function _main D:\!_Private\VS C++\UP\sln_templates\pr1\1.obj pr1
      Error 2 error LNK2019: unresolved external symbol "public: __thiscall Deque<int>::Deque<int>(void)" (??0?$Deque@H@@QAE@XZ) referenced in function _main D:\!_Private\VS C++\UP\sln_templates\pr1\1.obj pr1
      Error 3 error LNK1120: 2 unresolved externals D:\!_Private\VS C++\UP\sln_templates\Debug\pr1.exe 1 1 pr1

Ссылка на комментарий
Поделиться на другие сайты

Rika23

Если у тебя все это в одном файле, надо убрать подключения несуществующего в этом случае Deque.h, или выделить Deque.h в отдельный файл.

Тогда у меня компилируется и работает, правда, в Dev-C++, Visual C++ у меня не установлен.

И повторное подключение

#include <iostream>

#include "Deque.h"

тоже не нужно, хотя и не страшно.

Для более явной проверки работы конструктора можешь временно заменить return count; на return 111; и в main добавить cout << d.size();

Изменено пользователем Тролль
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Спасибо, теперь все работает. Получается, что нельзя разделять определение шаблонного класса и объявление по разным файлам.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...