Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 08.05.2013, 18:01   #1 (permalink)
Киры4
Новичок
 
Регистрация: 08.05.2013
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Question Помогите, пожалуйста, создать код на С++

Помогите написать прогу на С++!! сроки горят. Понимаю, что для спецов это просто, но времени реально нет(учусь на вечернем)
Одно из двух хотя бы?
1)
Дана последовательность из n вещественных чисел.Вычислить количество нулевых элементов последовательности и произведение отрицательных элементов. Если вычисление невозможно, выдать об этом сообщение с указанием причины
2)Составить программу для вычисления y по заданной формуле. Проверить работу программы на контрольных примерах (тестах): в нормальных условиях, при граничных значениях входных данных и в исключительных ситуациях.
y= ax^3 если x>a
(ax^3+b)^2 если x<a
ab/sqrt(x)+b если x=a
Киры4 вне форума   Ответить с цитированием

Старый 08.05.2013, 18:01
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Посмотрите данные обсуждения, в них скорее всего есть важные ответы

Помогите создать мини дрель
Помогите создать таблицу исполнения

Старый 13.05.2013, 05:11   #2 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

1)
Код:
#include <iostream>

using namespace std;

int main()
{
    int n=5, c=0;
    
    float *a = new float[n], m=1;
    a[0] = 0; a[1] = 0; a[2]= -3.3; a[3] = 2; a[4] = -10;
    for(int i=0; i<n; i++)
    {
        if(a[i]==0){
            c++;
        }
        else if(a[i]<0){
            m*=a[i];
        }
    }
    
    cout << c << " " << m << endl;
    
    delete[] a;
    return 0;
}
По последнему, я так понял надо затабулировать функцию? какой шаг задать для х?
kreol вне форума   Ответить с цитированием
Старый 13.05.2013, 12:19   #3 (permalink)
Киры4
Новичок
 
Регистрация: 08.05.2013
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

благодарю!
Насчет шага...эээ...сорри за тупняк- это как? нам по этому поводу преп ничего не разьяснял.
Киры4 вне форума   Ответить с цитированием
Старый 13.05.2013, 12:44   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от kreol Посмотреть сообщение
По последнему, я так понял надо затабулировать функцию? какой шаг задать для х?
Андрей, тут, как я понял, табулировать не нужно. Просто вводишь с консоли х, а программа выдает у. Что требуется, так это прописать обход ситуаций извлечения корня из отрицательного числа и нуля в знаменателе.
Vladimir_S вне форума   Ответить с цитированием
Старый 13.05.2013, 13:29   #5 (permalink)
Киры4
Новичок
 
Регистрация: 08.05.2013
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Владимир, верно. Ввод с консоли.Теперь и я понял суть вопроса.
Киры4 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 13.05.2013, 20:47   #6 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

ясно
2) вот одна версия
Код:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    float x, y, a, b;
    cout << "write x="; 
    cin >> x;
    cout << "write a=";
    cin >> a;
    
    if(x>a)
    {
        y = a*pow(x, 3);
    }
    else if(x<a)
    {
        cout << "write b=";
        cin >> b;
        y = pow(a*pow(x, 3)+b, 2);
    }
    else
    {
        if(x>0)
        {
            cout << "write b=";
            cin >> b;
            y=a*b/sqrt(x)+b;
        }
        else
        {
            cout << endl << "Wrong x. x have to be > 0" << endl;
            return 1;
        }
    }
    
    cout << endl << "y=" << y << endl;
    return 0;
}
а вот вторая)) версия
Код:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    float x, y, a, b;
    cout << "write x="; 
    cin >> x;
    cout << "write a=";
    cin >> a;
    
    if(x>a)
    {
        y = a*pow(x, 3);
    }
    else if(x<a)
    {
        cout << "write b=";
        cin >> b;
        y = pow(a*pow(x, 3)+b, 2);
    }
    else
    {
        cout << "write b=";
        cin >> b;
        
        if(x>0)
        {
            y=a*b/sqrt(x)+b;
        }
        else if(x<0)
        {
            y=a*b/sqrt(abs(x));
            cout << y <<"*i + " << b << endl;
            return 0;
        }
        else
        {
            cout << "Infinity";
            return 0;
        }
    }
    
    cout << endl << "y=" << y << endl;
    return 0;
}
kreol вне форума   Ответить с цитированием
Старый 14.05.2013, 13:15   #7 (permalink)
Киры4
Новичок
 
Регистрация: 08.05.2013
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо, народ!!!реально выручили.

А вот здесь задание- найти отношение минимального элемента к максимальному среди элементов, предшествующих первому нулевому.Сделал отношение, предшествующее первому положительному. Как по-умному указать поиск первого нулевого? Еще одним флагом, что ли?

#include "stdafx.h"
#include <iostream>
#include <locale.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
int n;
cout << "\nВведите количество элементов последовательности n = ";
cin >> n;
float a;
float min = 999;
float max = -999;
int fl = 0;
int i = 0;
while (i < n)
{
cout << "\nВведите элемент: ";
cin >> a;
if (a < min)
min = a;
if (fl < 1)
{
if (a <= 0)
{
if (a > max)
max = a;
}
else
fl = 1;
}
i++;
}
// cout << "\nmin = " << min;
// cout << "\nmax = " << max;
// cout << "\nfl = " << fl;
if (fl < 1)
cout << "\nНет положительных элементов.\n";
else
{
if (-999 == max)
cout << "\nНет элементов перед первым положительным.\n";
else
{
if (max == 0)
cout << "\nДеление на 0!\n";
else
{
float rel = min/max;
cout << "\nОтношение минимального элемента к максимальному среди предшествующих первому положительному: " << rel << "\n";
}
}
}
system("PAUSE");
return 0;
}
Киры4 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:09.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.