• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите, пожалуйста, создать код на С++

Киры4

Ученик
Регистрация
8 Май 2013
Сообщения
10
Реакции
0
Баллы
0
Помогите, пожалуйста, создать код на С++

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

По последнему, я так понял надо затабулировать функцию? какой шаг задать для х?
 
благодарю!
Насчет шага...эээ...сорри за тупняк- это как? нам по этому поводу преп ничего не разьяснял.
 
По последнему, я так понял надо затабулировать функцию? какой шаг задать для х?
Андрей, тут, как я понял, табулировать не нужно. Просто вводишь с консоли х, а программа выдает у. Что требуется, так это прописать обход ситуаций извлечения корня из отрицательного числа и нуля в знаменателе.
 
Владимир, верно. Ввод с консоли.Теперь и я понял суть вопроса.
 
ясно
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;
}
 
Спасибо, народ!!!реально выручили.

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

#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;
}
 
Назад
Сверху