Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помощь в написании проги / 12 сообщений из 12, страница 1 из 1
27.12.2003, 22:00
    #32365253
Stalcer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
Ребятки, помогите написать прогу на С (С++) которая должна вычислять L по формуле:
L = 10lg (k1*10 0,1(x1 + a1) + 10 0,1(x2 + a2) + 10 0,1(x3 + a3) + 10 0,1(x4 + a4) + 10 0,1(x5 + a5) + 10 0,1(x6 + a6) + 10 0,1(x7 + a7) + k2*10 0,1(x8 + a8) )
где k1 и k2 может принимать значения 1 либо 0
lg - десятичный логорифм
x1...8 - любые положительные числа
a1...8 - любые числа

Зарание огромное спасибо!
...
Рейтинг: 0 / 0
28.12.2003, 11:29
    #32365299
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
математику слабо вспомнить ?
____
...
Рейтинг: 0 / 0
28.12.2003, 12:44
    #32365316
Stalcer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
оч. тяжело )))
проблема в том, что синтаксис C не знаю (((
...
Рейтинг: 0 / 0
28.12.2003, 14:56
    #32365325
Gasanov2003
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
Попробуй объяснить тому, кто заставляет тебя писать такую программу, в том что она ему не нужна.
...
Рейтинг: 0 / 0
28.12.2003, 17:10
    #32365342
zayac
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
Не тестировал. Если не работает - то это тебе на домашнее задание.
Код: plaintext
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.
#include<math.h>
#include<stdio.h>

int main()
{
double L= 0 . 0 , x[ 8 ],a[ 8 ], tmp;
int    k1=- 1 , k2=- 1 , i= 0 ;

while(i< 8 )
 { 
  printf( "Введите x[%d]: " ,i);
  scanf( " %f" ,x[i]);
  printf( "\n" );
  if(x[i]<= 0 ) printf( "Ошибка\n" );
  else i++;
 }

for(int i= 0 ;i< 8 ;i++)
 {
  printf( "Введите a[%d]: " ,i);
  scanf( " %f" ,a[i]);
  printf( "\n" );
 }

while(k1!= 1  || k1!= 0 )
 {
  printf( "Введите k1: " );
  scanf( " %d" ,k1);
  printf( "\n" );
 }

while(k2!= 1  || k2!= 0 )
 {
  printf( "Введите k2: " );
  scanf( " %d" ,k2);
  printf( "\n" );
 }

for(int i= 0 ;i< 8 ;i++)
 {
  tmp=pow10( 0 . 1 *(x[ 1 ]+a[ 1 ]));
  if(i== 0 ) tmp*=k1;
  if(i== 7 ) tmp*=k2;
  L+=tmp;
 }

L= 10 *log(L);
printf( "Результат: %f\n" ,L);
return( 0 );
}
...
Рейтинг: 0 / 0
28.12.2003, 17:12
    #32365343
zayac
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
Уже не правильно.
Вместо tmp=pow10(0.1*(x[1]+a[1]));
Надо tmp=pow10(0.1*(x +a));
...
Рейтинг: 0 / 0
28.12.2003, 17:14
    #32365344
zayac
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
Код: plaintext
1.
Вместо tmp=pow10( 0 . 1 *(x[ 1 ]+a[ 1 ]));
Надо tmp=pow10( 0 . 1 *(x[i]+a[i]));
...
Рейтинг: 0 / 0
28.12.2003, 17:22
    #32365346
zayac
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
Вместо for(int i=0;i<8;i++)
Надо for(i=0;i<8;i++)
...
Рейтинг: 0 / 0
28.12.2003, 17:25
    #32365347
Stalcer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
2zayac
Огромное при огромное благодарю!
...
Рейтинг: 0 / 0
28.12.2003, 17:32
    #32365348
Stalcer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
У меня чуть другой вариант:
автор#include "stdafx.h"
#include "math.h"
#include "stdio.h"
int main(int argc, char* argv[]) {
int a1, a2, a3, a4, a5, a6, a7, a8, x1, x2, x3, x4, x5, x6 , x7, x8, k1, k2;
double l;
scanf(" %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, &x1, &x2, &x3, &x4, &x5, &x6, &x7, &x8, &k1, &k2);
l = 10*log10( pow(k1*10, 0.1*(x1 + a1)) +
pow(10, 0.1*(x2+a2)) +
pow(10, 0.1*(x3+a3)) +
pow(10, 0.1*(x4+a4)) +
pow(10, 0.1*(x5+a5)) +
pow(10, 0.1*(x6+a6)) +
pow(10, 0.1*(x7+a7)) +
pow(k2*10, 0.1*(x8+a8)));
printf("l = %f\n", l);
return 0;
} Более ламерский (-:
...
Рейтинг: 0 / 0
28.12.2003, 22:02
    #32365375
Stalcer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
Я прогу отдебугил:
#include<stdafx.h>
#include<math.h>
#include<stdio.h>
#include<conio.h>

int main()
{
float L=0.0, x[8],a[8], tmp;
int k1=-1, k2=-1, i=0;

while(i<8)
{
printf("Please enter x[%d]: ",i);
scanf(" %f",&x );
printf("\n");
if(x<=0) printf("Error\n");
else i++;
}

for(i=0;i<8;i++)
{
printf("Please enter a[%d]: ",i);
scanf(" %f",&a);
printf("\n");
}


while(k1!=1 && k1!=0)
{
printf("Please enter k1: ");
scanf(" %d",&k1);
printf("\n");
}

while(k2!=1)
{
if(k2==0) break;
printf("Please enter k2: ");
scanf(" %d",&k2);
printf("\n");
}

for(i=0;i<8;i++)
{
tmp=(float)pow(10,0.1*(x+a));
if(i==0) tmp*=k1;
if(i==7) tmp*=k2;
L+=tmp;
}

L=10*log(L);
printf("Result: %f\n",L);
getch();
return(0);
}

Но результат все равно не корректный :-(
Если
a0=-6 a1=-1 a2=0, a3=0, a4=0, a5=0, a6=0, a7=0, x0=110, x1=108, x2=108, x3=109, x4=110, x5=110, x6=110, x7=110, k1=1, k2=0
то по L=268.9 а должно быть L=116 :-(
Прошу помощи :-)
...
Рейтинг: 0 / 0
29.12.2003, 10:33
    #32365570
123456789098
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании проги
вообще то ОТДЕБУГАЛ - это когда не только заработала, но и заработала правельно ;-)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помощь в написании проги / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]