Форум программистов, компьютерный форум CyberForum.ru

Затруднения в программе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализация алгоритма обхода лабиринта http://www.cyberforum.ru/cpp-beginners/thread587262.html
Определение границ перколяционного кластера: реализация алгоритма обхода лабиринта. Буду очень благодарен за помощь.
C++ Как потоковую функцию в шаблоне класса сделать неинлайновой Если потоковую функцию описать внутри класса, то все компилируется и собирается. Но если вынести ее код наружу, то функция не находится: template<class T> class A { protected: T x,y; public: A():x(0),y(0){} http://www.cyberforum.ru/cpp-beginners/thread587253.html
Создание классов C++
Создать абстрактный базовый класс Triangle(треугольеник) для представления треугольника виртуальными функциями вычисления площади и периметра. Поля должны включать две стороны и угол между ними. Определить классы-наследники: прямоугольный треугольник, равнобедренный треугольник, равносторонний треугольник со своими функциями перевода и вывода на экран
Найти первый отрицательный элемент последовательности sin(ctg(xi) x1 вводиться а последющие вычисляються по формуле x1+1=xi+0.3 C++
1)Найти первый отрицательный элемент последовательности sin(ctg(xi)) x1 вводиться а последющие вычисляються по формуле x1+1=xi+0.3 в c++
C++ Вывод в консольном приложении http://www.cyberforum.ru/cpp-beginners/thread587242.html
Всем доброго времени суток. Написал приложение выводящие через printf 5 строк с паузой в 1 сек. При обычном запуске всё работает хорошо. Решил перенаправить стандартный вывод приложения в файл( через командную строку: test.exe > file.txt) и здесь появилась проблема. Файл заполняется не по мере выполнения моей программы, а только после её завершения. Возможно он сначала как-то буферизует данные....
C++ Матрицы: вычислить сумму элементов ,образующих символ Задана матрица чисел : а Вычислить сумму элементов ,образующих символ. Создать в простом консольном приложении. подробнее

Показать сообщение отдельно
akainia
0 / 0 / 0
Регистрация: 27.04.2012
Сообщений: 11

Затруднения в программе - C++

26.05.2012, 13:22. Просмотров 356. Ответов 6
Метки (Все метки)

Здравствуйте. Когда писала программу столкнулась с вот таким вопросом от преподавателя:

C++
1
2
3
4
5
6
7
float time_max(int n, float *Uvx, float *t)
{ float max=*Uvx;
for (int i=0;i<n;i++)
if (Uvx[i]>max) max=Uvx[i];
for (int i=0;i<n;i++)
if(Uvx[i]==max) 
return t[i];}
Здесь я описываю вывод момента времени, при котором Uvx будет максимальным.
Преподаватель спросил следующее...
возможно ли заменить тип функции float на void и что при этом изменится...
Я ответила, да, возможно... но что изменится сказать не смогла. Понимаю, что return t[i] не будет...
Думаю, что будет так, но программа не хочет работать:
C++
1
2
3
4
5
6
void time_max(int n, float *Uvx, float *t)
{ float max=*Uvx;
for (int i=0;i<n;i++)
if (Uvx[i]>max) max=Uvx[i];
for (int i=0;i<n;i++)
if(Uvx[i]==max);}
За ранее большое спасибо! Для удобства я скину всю программу, в следующем сообщении...

Добавлено через 33 секунды
Файл «main.cpp»
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
#include<stdio.h>
#include<iostream>
#include<math.h>
#include"newfile.h"
#define N 1500
using namespace std;
 
int main() {
float t[N], Uvx[N], Uvix[N],dt;
read_file();
cout<<endl;
char ch;
cout<<"1-tablica na n tochec, 2-parametr Uvx, 3-parametr Uvix,4-zapic v fail"<<endl;
cout<<endl;
while(1)
{cout<<"Vvedite comandy"<<endl;
cin>>ch;
switch(ch)
{case '1':
int n;
cout<<endl;
cout<<"vvedite n=";
cin>>n;
cout<<"   N     i     Uvx     Uvix"<<endl;
cout<<"___________________________"<<endl;
form_t(n,t,dt);
form_Uvx(n,t,Uvx);
form_Uvix(n,Uvx,Uvix);
form_tabl(n,t,Uvx,Uvix);
break;
case '2':
{float e=0.024,p=1,time2,time1=10E+36;n=11;
while(p>e){
form_t(n,t,dt);
form_Uvx(n,t,Uvx);
time2=time_max(n,Uvx,t);
p=fabs(time1-time2);
cout<<"n="<<n<<"  time_max="<<time2<<"  p="<<p<<endl;
time1=time2;
n=2*n;}break;}
case '3':
{float e=0.02,p=1,time2,time1=10E+36;n=11;
while(p>e){
form_t(n,t,dt);
form_Uvx(n,t,Uvx);
form_Uvix(n,Uvx,Uvix);
time2=time_max(n,Uvx,t);
p=fabs(time1-time2);
cout<<"n="<<n<<"  time_max="<<time2<<"  p="<<p<<endl;
time1=time2;
n=2*n;}break;}
case'4':
n=50;
form_t(n,t,dt);
form_Uvx(n,t,Uvx);
form_Uvix(n,Uvx,Uvix);
write_file(n,t,Uvx,Uvix);
cout<<"zapis proizvedena"<<endl;break;
default: cout<<"Error"<<endl;}
char c;
cout<<endl;
cout<<"Xotite li vbI prodolgit Y/N";
cin>>c;
if(c!='Y')break;}
return 0;}
 
Файл «newmain.cpp»
#include<stdio.h>
#include<math.h>
 
void form_t(int n, float *t,float dt)
{ float tn=0.5,tk=6;
dt=(tk-tn)/(n-1);
for(int i=0;i<n;i++)
t[i]=tn+i*dt;}
 
void form_Uvx(int n,float *t,float *Uvx)
{float Um=20.5,tm=2.5,tn=0.5,tk=6;
for(int i=0;i<n;i++)
if (t[i]<=tm) Uvx[i]=Um*(t[i]-tn)/(tm-tn);
else Uvx[i]=(-Um*(t[i]-tm)/(tk-tm))+Um;}
 
void form_Uvix(int n, float *Uvx,float *Uvix)
{float a=5,b=0.05;
int Uvx1=10;
for(int i=1;i<n;i++)
if (Uvx[i]<=Uvx1) Uvix[i]=a;
else Uvix[i]=b*pow(Uvx[i],2);}
 
void form_tabl(int n,float*t,float*Uvx,float*Uvix)
{for(int i=0;i<n;i++)
printf("\n %2d %6.3f %6.3f %6.3f",i,t[i],Uvx[i],Uvix[i]);}
 
float time_max(int n, float *Uvx, float *t)
{ float max=*Uvx;
for (int i=0;i<n;i++)
if (Uvx[i]>max) max=Uvx[i];
for (int i=0;i<n;i++)
if(Uvx[i]==max) 
return t[i];}
 
void write_file(int n,float *t,float *Uvx,float *Uvix)
{FILE *f1,*f2,*f3;
f1=fopen("massiv_t.txt","w");
f2=fopen("massiv_Uvx.txt","w");
f3=fopen("massiv_Uvix.txt","w");
for (int i=0;i<n;i++)
{fprintf(f1,"\n %6.3f",t[i]);
fprintf(f2,"\n %6.3f",Uvx[i]);
fprintf(f3,"\n %6.3f",Uvix[i]);}
fclose(f1);
fclose(f2);
fclose(f3);}
 
void read_file()
{ FILE *f=fopen("zast.txt","r");
char ch;
while (!feof(f))
{ fscanf(f,"%c",&ch);
printf("%c",ch); }
fclose(f); }
Файл «newfile»
void form_t(int n, float *t,float dt);
 
void form_Uvx(int n,float *t,float *Uvx);
 
void form_Uvix(int n, float *Uvx,float *Uvix);
 
void form_tabl(int n,float*t,float*Uvx,float*Uvix);
 
float time_max(int n, float *Uvx, float *t);
 
void write_file(int n,float *t,float *Uvx,float *Uvix);
 
void read_file();
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru