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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lesnik
3 / 3 / 1
Регистрация: 23.10.2014
Сообщений: 62
#1

РГР по информатике - C++

27.10.2014, 00:02. Просмотров 619. Ответов 10
Метки нет (Все метки)

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
#include<math.h>
#include<conio.h>
int main(){
    double S=1,x,a;
    printf("Введите x и a\n");
    scanf("%lf %lf",&x,&a);
    if(x>a)S=x*x*x+a;
     else
      for(int i=2;i<=2*a;i++)
       S*=pow(sin(i),3)/(exp(2*i)+pow(tan(2*i+1),5));
    printf("S = %lf",S);
    getch();
}

выводится -0.000000 если выполняется второе условие, в чем ошибка?
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2014, 00:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос РГР по информатике (C++):

программы по информатике - C++
задачки

Задача по информатике - C++
Ползователь вводит числа к примеру: 1 500 700 -2000, программа должна вывести сумму, что делать с пробелами и вообще как это реализовать,...

ЕГЭ по информатике - C++
Извините если не в ту тему написал, не могу понять куда лучше это написать. На каком языке сдавать ЕГЭ по информатике? Я знаю только...

Лаба по информатике - C++
Завтра сдавать лабораторную, а я в программировании на Си++ практически ноль. Было всего пару лекций на его изучение. Задача:...

лабораторная по информатике - C++
помогите с задачками, пожалуйста! 1. Поменять местами максимальный и последний отрицательный элементы массива А (40). ...

лабораторная по информатике - C++
подскажите как делать, через циклы, плиз!)

10
Andrej
И целого heap'а мало
94 / 55 / 9
Регистрация: 31.07.2014
Сообщений: 291
27.10.2014, 00:28 #2
Lesnik, заведи дополнительную переменную elem. в неё клади результат формулы на каждой итерации.
Домножаешь S на этот elem. И каждый раз выводи этот elem. Что выдаст?
0
Lesnik
3 / 3 / 1
Регистрация: 23.10.2014
Сообщений: 62
05.11.2014, 02:21  [ТС] #3
Andrej, я пробовал - это бесполезно, а вот когда я вставил формулу в excel и добавил диаграмму, то увидел, что данная функция имеет "нормальные значения" от (-1;0)
0
Kerry_Jr
Модератор
Эксперт PHP
2209 / 2005 / 702
Регистрация: 14.05.2014
Сообщений: 5,870
Записей в блоге: 1
Завершенные тесты: 5
05.11.2014, 02:39 #4
Lesnik, в переменной типа double не хватает разрядов
0
Renji
2082 / 1439 / 329
Регистрация: 05.06.2014
Сообщений: 4,159
05.11.2014, 04:28 #5
выводится -0.000000 если выполняется второе условие, в чем ошибка?
В числителе синус, значение которого меняется от минус единицы до единицы (да, даже если возвести в куб). В знаменателе экспонента которая растет до бесконечности. Что вас собственно удивляет в том что при делении первого на второе получается чуть более чем нифига?

И меня терзают смутные сомнения, что в оригинале i - мнимая единица, а задача была на комплексные числа.
0
Lesnik
3 / 3 / 1
Регистрация: 23.10.2014
Сообщений: 62
07.11.2014, 02:04  [ТС] #6
Цитата Сообщение от Renji Посмотреть сообщение
И меня терзают смутные сомнения, что в оригинале i - мнимая единица, а задача была на комплексные числа.
Нет, здесь i - счетчик

Добавлено через 1 час 3 минуты
C++
1
printf("S = %0.25f",S);
вот так я сделал и пойдет, главное что программа выводит число, а не нолики)))) проверил все excel`e - так и должно быть. Это все потому что составители методичек(т.е. такие же студенты как и мы) не проверяют формулы на "нормальные" значения

Добавлено через 5 часов 20 минут
теперь здесь остановился....
 Комментарий модератора 
В теме надо помещать только одну задачу.
Заведите новую тему!

Дан двумерный массив a, размером (n×m). Найти минимальный элемент в каждой строке матрицы. Затем каждую строку матрицы разделить на минимальный элемент строки.
Кликните здесь для просмотра всего текста
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
#include<stdio.h>
#include<conio.h>
int main(){
    int n,m;
    printf("Введите N = "); scanf("%d",&n);
    printf("\nВведите M = "); scanf("%d",&m);
    
    double a[n][m];
    int min[n];
    
    printf("\nВведите элементы массива A\n");
    for(int i=0; i<n;i++) 
       {
       printf("\nВведите строку %d:\n",i);
       for(int j=0; j<m;j++)
          {
          scanf("%lf",&a[i][j]);
          if(j==0)min[i]=0;
          else if (a[i][j]<a[i][min[i]])min[i]=j;
          }
          for(int j=0; j<m;j++)
          a[i][j]/=a[i][min[i]];
       }
       
    for(int i=0; i<n;i++)
       {
       printf("\n");
       for(int j=0; j<m;j++)
          printf("%lf\t",a[i][j]);
       }
     
    getch();
}

программа находит минимум правильно, но делет на него неправильно, в чем проблема?

Добавлено через 6 минут
т.е. программа вообще не делит на минимум

Добавлено через 6 минут
и еще я заметил, что программа делит каждый элемент на минимальный до тех пор пока не разделит его самого на себя
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4023 / 2246 / 558
Регистрация: 18.10.2014
Сообщений: 3,869
07.11.2014, 02:06 #7
Цитата Сообщение от Lesnik Посмотреть сообщение
вот так я сделал и пойдет,
Альтернативно можно было использовать '%lg' или '%le' для вывода в научной нотации.
0
Lesnik
3 / 3 / 1
Регистрация: 23.10.2014
Сообщений: 62
07.11.2014, 02:18  [ТС] #8
я понял ошибку в последней задаче.... когда у меня деление доходит до того момента когда минимальное значение значение делится на минимальное, то получается и дальше деление идет на единицу...

Добавлено через 3 минуты
Вот правильный вариант
Кликните здесь для просмотра всего текста
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
#include<stdio.h>
#include<conio.h>
int main(){
    int n,m;
    printf("Введите N = "); scanf("%d",&n);
    printf("\nВведите M = "); scanf("%d",&m);
    
    double a[n][m],r,min[n];
    
    printf("\nВведите элементы массива A\n");
    for(int i=0; i<n;i++) 
       {
       printf("\nВведите строку %d:\n",i);
       for(int j=0; j<m;j++)
          {
          scanf("%lf",&r);
          a[i][j]=r;
          if(j==0)min[i]=r;
          else if (r<min[i])min[i]=r;
          }
       for(int j=0; j<m; j++)
          a[i][j]/=min[i];
       }
       
    for(int i=0; i<n;i++)
       {
       printf("\n");
       for(int j=0; j<m;j++)
          printf("%lf\t",a[i][j]);
       }
       
    getch();
}
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4023 / 2246 / 558
Регистрация: 18.10.2014
Сообщений: 3,869
07.11.2014, 02:19 #9
Отдельно стоит заметить, что исходный код является корректным С кодом, но не является корректным С++ кодом. В языке С++ заголовочный файл 'math.h' объявляет математические функции в трех перегруженных вариантах: для float, double и long double. В этом коде математические функции вызываются с аргументом типа int, что вызывает неопределенность при разрешении перегрузки.
0
Lesnik
3 / 3 / 1
Регистрация: 23.10.2014
Сообщений: 62
07.11.2014, 02:59  [ТС] #10
TheCalligrapher, т.е. нужно дописать у цифрам 2->2.0 - мы это знаем
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4023 / 2246 / 558
Регистрация: 18.10.2014
Сообщений: 3,869
07.11.2014, 03:12 #11
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
В языке С++ заголовочный файл 'math.h' объявляет математические функции в трех перегруженных вариантах:
... хотя я уже наичнаю сомневаться в том, что это действительно требуется именно в <*.h> версиях файлов.
0
07.11.2014, 03:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2014, 03:12
Привет! Вот еще темы с ответами:

Олимпиада по информатике - C++
Вечер добрый! Кто, что может посоветовать для подготовки, может задачники какие или еще что? И по поводу городских олимпиад, можно ли...

Курсовая по информатике на С++ - C++
Мы студенты-заочники, будущие инженеры-почтовики. От программирования люди достаточно далекие. Но... По информатике надо сделать курсовую с...

Задание по информатике - C++
Помогите на с++ Сгенерировать матрицу случайных чисел размера M на М и повернуть полученную матрицу относительно главной диагонали.

3адачи по информатике - C++
Здравствуйте, уважаемые программисты! помогите пожалуйста решить задачки по информатике, мне в понедельник сдавать, а я почти ничего не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru