Форум программистов, компьютерный форум, киберфорум
Наши страницы

Прочитать программу, написать псевдо-код и объяснить его - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Редактируем исходник Return to Castle Wolfenstain. http://www.cyberforum.ru/cpp-beginners/thread510925.html
Я делаю мод для Return to Castle Wolfenstain на движке Quake 3.Компьютеры в 2001 году были слабенькие, соответственно игра имеет очень много ограничений: по количеству брашей MAX_MAP_BRUSHES 0x8000,...
C++ Для каждого массива определить произведение положительных элементов ,расположенных в чётных строках массива Даны вещественные массивы F, M.Для каждого массива определить произведение положительных элементов ,расположенных в чётных строках массива, и произведение положительных элементов, расположенных в... http://www.cyberforum.ru/cpp-beginners/thread510920.html
Для каждого массива определить количество элементов предшествующих первому отрицательному элементу массива C++
Даны вещественные массивы A S.Для каждого массива определить количество элементов предшествующих первому отрицательному элементу массива. #include <iostream.h> #include <iomanip.h> // прототипы...
C++ Определить значения вещественного массива
Дан вещественный массив С.Определить значения вещественного массива D по следующему правилу: D=сумме i-й строки в массиве С,если С>0 и D=0 в противном случае.Значение переменной i изменяется от 0 до...
C++ Определить сколько различных цифр встречается в строке http://www.cyberforum.ru/cpp-beginners/thread510913.html
1).Создать функцию ParallelepipedVolume(a,b,c) вычисления объема параллелепипеда. ОБЪЕМ ПАРАЛЛЕПИПЕДА Введите через пробел длины сторон a, b, c в миллиметрах и нажмите : ->5 4 12 Результат:...
C++ Выделение памяти при вводе строки Условие такое, клавиатуры вводится строка (в данной программе строка - массив символов, первоначально под который выделена память для 3ех элементов ) char *str1=new char; задача состоит в том,... подробнее

Показать сообщение отдельно
jonikmmm

Прочитать программу, написать псевдо-код и объяснить его - C++

04.12.2011, 16:37. Просмотров 462. Ответов 0
Метки (Все метки)

Здравствуйте! Пожалуйста помогите разобраться с программой дубовиком.... мне нужно сдавать лабораторную, а я не знаю, что там и как.... плачу 200 рублей за успешно-сданную лабораторную))) Нужно либо псевдо код написать либо в комментариях что и как работает, а еще потом по телефону объяснить или по скайпу...буду очень благодарен! Прикрепляю код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QString>
 
#include <pthread.h>
#include <unistd.h>
#include <fstream>
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include <ctime>
#include <cstdlib>
#include <cerrno>
#include <cstring>
 
using namespace std;
namespace{
 
 
vector<string> names;
vector<pthread_t> thr1, thr2;
pthread_t main;
QString ostring;
 
struct Info{
int NThreads;
class Widget *that;
}myInfo;
 
 
class make_string{
private:
std::ostringstream buffer;
public:
template<typename T>
make_string& operator << (T const &datum){
buffer<<datum;
return *this;
}
operator std::string() const{
return buffer.str();
}
 
};
 
void postMessage(const string& message){
QString result = ostring+message.c_str();
ostring=result;
cout<<message.c_str();
}
 
void postError(pthread_t thread, int result){
if(result) postMessage(make_string()<<"Thread "<<thread<<" exit with an error: "<<strerror(result));
}
 
void *thread1(void *p)
{
string name = make_string()<<pthread_self();
int ip = *(reinterpret_cast<int*>(p));
names[ip] = name;
ofstream out(name.c_str());
int x = rand()%100+1;
for (int i = 0; i<x; i++) out << "s";
out.close();
time_t timer = time(0);
string message = make_string()<<"Hi, I am odd thread with ID = "<<static_cast<unsigned int>(pthread_self())<<", PID = "<< getpid()<<", PPID = "<<getppid()<<", TIME = "<< ctime(&timer)<<"FileName = "<<name<<", Number of written symbols = "<<x<<"\n\n";
postMessage(message);
return NULL;
}
 
void *thread2(void *p)
{
int ip = *(reinterpret_cast<int*>(p));
pthread_join(thr1[ip], NULL);
ifstream in(names[ip].c_str());
int a = 0;
char temp;
while(!in.eof())
{
in >> temp;
a++;
}
in.close();
time_t timer = time(0);
string message = make_string()<<"Hi, I am even thread with ID = "<<static_cast<unsigned int>(pthread_self())<<", PID = "<< getpid()<<", PPID = "<<getppid()<<", TIME = "<< ctime(&timer)<<"FileName = "<<names[ip]<<", Number of read symbols = "<<a<<"\n\n";
postMessage(message);
return NULL;
}
void * anotherMain(void *)
{
ostring="";
int NPairs = myInfo.NThreads;
thr1.resize(NPairs);
thr2.resize(NPairs);
names.resize(NPairs);
for (int i = 0; i<NPairs; i++)
{
if(pthread_create (&thr1[i], NULL, thread1, &i)<0)
{
postMessage(make_string()<<"Cannot create odd thread\n");
printf("Cannot create odd thread");
continue;
}
if(pthread_create (&thr2[i], NULL, thread2, &i)<0){
postMessage(make_string()<<"Cannot create even thread\n");
pthread_join(thr1[i], NULL);
}else{
pthread_join(thr2[i],NULL);
}
}
return NULL;
}
}
Widget::Widget(QWidget *parent)
: QWidget(parent), ui(new Ui::Widget)
{
ui->setupUi(this);
ui->input->setInputMask("9;");
}
 
Widget::~Widget()
{
delete ui;
}
 
void Widget::on_startButton_clicked(){
bool a;
int NThreads =ui->input->text().toInt(&a);
 
if(a){
myInfo.NThreads=NThreads;
myInfo.that=this;
pthread_create(&main, NULL, anotherMain,NULL);
pthread_join(main, NULL);
postMessage(ostring);
}
}
void Widget::postMessage(const QString& message){
QString output = ui->output->toPlainText()+message;
ui->output->setPlainText(output);
}
void Widget::on_clearButton_clicked(){
ui->output->clear();
}

Результаты работы программы

Hi, I am odd thread with ID = 3067411312, PID = 2418, PPID = 2385, TIME = Wed Mar 24 02:04:26 2010
FileName = 3067411312, Number of written symbols = 6

Hi, I am even thread with ID = 3059018608, PID = 2418, PPID = 2385, TIME = Wed Mar 24 02:04:26 2010
FileName = 3067411312, Number of read symbols = 7

Hi, I am odd thread with ID = 3059018608, PID = 2418, PPID = 2385, TIME = Wed Mar 24 02:04:26 2010
FileName = 3059018608, Number of written symbols = 52

Hi, I am even thread with ID = 3067411312, PID = 2418, PPID = 2385, TIME = Wed Mar 24 02:04:26 2010
FileName = 3059018608, Number of read symbols = 53
Можете либо позвонить на +79243118379, если сможете помочь, либо написать на jon_krivonogov@mail.ru...
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru