Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Моя первая прога, Оцените и внесите свою критику!!! 
:(
    Опции темы
d52
Дата 1.4.2004, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 10.2.2004
Где: Нижний Новгород

Репутация: нет
Всего: нет



Привет!!! Написал свою первую прогу. Пожалуйста посмотрите ее и скажите что где нитак.

Прога написана для интерполяции и выбора значений по таблице 72 СНиП "Стальные конструкции" . Столбик 0 это гибкость, а строка 0 это расчетное сопротивление стали. Найти нада фи.

Код

#include<iostream.h>
int main(){
cout<<"Table consist d52\n";
int ry, ly;
cout<<"\nlymbda = ";
cin>>ly;
cout<<"\nRy = ";
cin>>ry;

const int a=23, b=14; //??????? 72 ???? "???????? ???????????"
int mass[a][b]={
 {  0,200,240,280,320,360,400,440,480,520,560,600,640,650},
 { 10,988,987,985,984,983,982,981,980,979,978,977,977},
 { 20,967,962,959,955,952,949,946,943,941,938,936,934},
 { 30,939,931,924,917,911,905,900,895,891,887,883,879},
 { 40,906,894,883,873,863,854,846,839,832,825,820,814},
 { 50,869,852,836,822,809,796,785,775,764,746,729,712},
 { 60,827,805,785,766,749,721,696,672,650,628,608,588},
 { 70,782,754,724,687,654,623,595,568,542,518,494,470},
 { 80,734,686,641,602,566,532,501,471,442,414,386,359},
 { 90,665,612,565,522,483,447,413,380,349,326,305,287},
 {100,599,542,493,448,408,369,335,309,286,267,250,235},
 {110,537,478,427,381,338,306,280,258,239,223,209,197},
 {120,479,419,366,321,287,260,237,219,203,190,178,167},
 {140,376,315,272,240,215,195,178,164,153,143,134,126},
 {150,328,276,239,211,189,171,157,145,134,126,118,111},
 {160,290,244,212,187,167,152,139,129,120,112,105, 99},
 {170,259,218,189,167,150,136,125,115,107,100, 94, 89},
 {180,233,196,170,150,135,123,112,104, 97, 91, 85, 81},
 {190,210,177,154,136,122,111,102, 94, 88, 82, 77, 73},
 {200,191,161,140,124,111,101, 93, 86, 80, 75, 71, 67},
 {210,174,147,128,113,102, 93, 85, 79, 74, 69, 65, 62},
 {220,160,135,118,104, 94, 86, 77, 73, 68, 64, 60, 57},
 {230}};

for(int c=0; c<a; c++){         //????? ??????? 72 ???? ?? ???????
 for(int v=0; v<b; v++);
 
}

   int aa, ab;                       //?????? ???????? ?? ?????? 0
for(aa=1; ly>=mass[aa][0]; aa++);
while(ly<10){
  ab=1;
  goto metka1;              //??????? ?? ?????
 }
for(ab=1; ly>mass[ab][0]; ab++);
metka1:;                              //????? ???????? ?? ?????? 0

int ba, bb;                       //?????? ???????? ?? ?????? 0
for(ba=1; ry>=mass[0][ba]; ba++);
while(ry<200){
 bb=1;
 goto metka2;                  //??????? ?? ?????
}
   for(bb=1; ry>mass[0][bb]; bb++);
metka2:;                              //????? ???????? ?? ?????? 0

cout<<"\n lymbda do="<<mass[aa-1][0];
cout<<"\n lymbda="<<ly;
cout<<"\n lymbda po="<<mass[ab][0];

cout<<"\n\n Ry do="<<mass[0][ba-1];
cout<<"\n Ry="<<ry;
cout<<"\n Ry po="<<mass[0][bb];

int va, vb;
if(mass[0][bb]==mass[0][ba-1]){
 va=mass[aa-1][ba-1];
}
else va=(mass[aa-1][ba-1]*(ry-mass[0][ba-1])+mass[aa-1][bb]*(mass[0][bb]-ry))/(mass[0][bb]-mass[0][ba-1]);

if(mass[0][bb]==mass[0][ba-1]){
 vb=mass[ab][ba-1];
}
else vb=(mass[ab][ba-1]*(ry-mass[0][ba-1])+mass[ab][bb]*(mass[0][bb]-ry))/(mass[0][bb]-mass[0][ba-1]);

int x;
if(mass[aa-1][0]==mass[ab][0]){
 x=va;
}
else x=(va*(ly-mass[aa-1][0])+vb*(mass[ab][0]-ly))/(mass[ab][0]-mass[aa-1][0]);
cout<<"\n\n Otvet fi="<<x;
   
cout<<"\n\nend";
int z;
cin>>z;
return 0;
}

PM MAIL ICQ   Вверх
Artiom
Дата 1.4.2004, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: нет
Всего: 17



Использование goto считается плохим стилем. Честно говоря программу не прочитал - тяжело читать без комментариев, но вместо goto лучше использовать break, continue, вызовы функций.


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Coocky
Дата 1.4.2004, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Цитата
Использование goto считается плохим стилем

Это если много ,а парочку можно smile.gif Главное что б автор сам не путался,а на работу это не влияет wink.gif Сам иногда балуюсь biggrin.gif
Вообще-то мне формула неизвестна,но прога нормальная,вот только переменные можно обьявить в начале(если речь пошла о стиле biggrin.gif )
Ну можно еще и текст руссифицировать...


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
cardinal
Дата 1.4.2004, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



1. ";" после меток не обязательна.
2.
Код
while(ly<10){
 ab=1;
 goto metka1;              //??????? ?? ?????
}

лучше так:
Код
if(ly<10){
 ab=1;
 goto metka1;              //??????? ?? ?????
}

3.
Код
while(ry<200){
bb=1;
goto metka2;                  //??????? ?? ?????
}

лучше так:
Код
if(ry<200){
bb=1;
goto metka2;                  //??????? ?? ?????
}

4. Все переменные я бы объявлял в самом верху.

А так для первой проги - неплохо!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Stalk
Дата 1.4.2004, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 24.1.2004
Где: Украина, харьков

Репутация: нет
Всего: нет



Цитата
текст русифицировать

Брррр. Не люблю, когда программу просят написать по-русскиsmile.gif Постоянно получается djn nfrfz atyz:)
PM MAIL ICQ   Вверх
Coocky
Дата 1.4.2004, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Цитата
Не люблю, когда программу просят написать по-русски Постоянно получается djn nfrfz atyz:)

А <windows.h> пользовался biggrin.gif


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
maxim1000
Дата 2.4.2004, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



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


--------------------
qqq
PM WWW   Вверх
Guest
Дата 2.4.2004, 13:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











с точки зрения читабельности - старауся писать функции
не длиннее 24 строк, включая заголовок
{1 экран}

а в обШем - молодец smile.gif

  Вверх
d52
Дата 2.4.2004, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 10.2.2004
Где: Нижний Новгород

Репутация: нет
Всего: нет



Спасибо за коментарии. Я думал будет хуже(ну понятно).
PM MAIL ICQ   Вверх
srd
Дата 2.4.2004, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 27
Всего: 49



Цитата
Все переменные я бы объявлял в самом верху.

А смысл определять переменные в начале блока? Тяжкое наследие Си?


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
cardinal
Дата 2.4.2004, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Цитата
Тяжкое наследие Си?

Нет.

Смысл в том, что если захотел поменять название переменной, то ты ее сразу найдешь (в начале блока).
А во вторых если тебе переменная больше становится не нужной (после отладки например), то ты запросто можешь вообще забыть о том, что она была декларирована когда-то. Если написано что-то типа
Код
int x=0;

, то даже компилер ругаться не будет типа - unused variable.
Помоему это плохой стиль программирования - определять переменную тогда, когда она вдруг понадобилась, прямо там где понадобилась.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
srd
Дата 2.4.2004, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 27
Всего: 49



Ну, на самом деле, когда я определяю переменную там, где она мне понадобилась, я пишу обычно что то вроде if (int i = ....) или double f = func(...), т.е. если этот код не нужен, то вместе с ним удаляются и ненужные переменные smile.gif Гораздо важнее следующее:
...
if (условние) {
Some_class a;
...
}
...
Конструктор для объекта a будет вызван только в том случае, если выполнится условие, а при выходе из блока будет немедленно вызван деструктор. Чем не аргумент в пользу определения переменных там, где они понадобились?

Это сообщение отредактировал(а) srd - 2.4.2004, 20:55


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
cardinal
Дата 2.4.2004, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



А разве так нельзя:
Код
Some_class *a;

if (условние) {
a = new Some_class;
...
delete a;
}


Ну а вообще конечно аргумент, только для себя пока не решил, что это даст smile.gif.

Я говорил о простых переменных, которые у d52 встречались в коде.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
d52
Дата 2.4.2004, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 10.2.2004
Где: Нижний Новгород

Репутация: нет
Всего: нет



Цитата
Цитата 
Не люблю, когда программу просят написать по-русски Постоянно получается djn nfrfz atyz:) 

А <windows.h> пользовался

Попробовал добавить <windows.h> b и тем самым руссифицировать, но прога выдала закарючки.
PM MAIL ICQ   Вверх
chipset
Дата 3.4.2004, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



эээ... ежели я правильно понял то тут надо локаль восемсот восемьдесят шестую поставить....
а вообще молодец wink.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1135 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.