Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2012, 12:29   #1
SmallLS
Новичок
Джуниор
 
Регистрация: 19.11.2012
Сообщений: 4
По умолчанию Задача(скорее всего вопрос)

Можно ли решить функцию:
y= 2z+x,z>x
y=z,z=x
y= z-x,z<x
с помощью оператора switch(мне препад сказала что нужно хотя бы употребить) я написал через оператор условия if кому нужно вот код...
Код:
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    int y;
    int z; 
    int x;
 setlocale(LC_ALL, "Russian");
 cout<<"Введите х"<<endl;
 cin>>x;
 cout<<"Введите z"<<endl;
 cin>>z;
if(z>x)
{
       y=2*z+x;
       cout<<"y="<<y<<endl;
       }
        else
        {
            if(z<x)
            {
                y=z-x;
                cout<<"y="<<y<<endl;  
                   }
      else
      {
      y=z;
      cout<<"y="<<y<<endl;
      }
      }
      system("PAUSE");
      }
работаю в dev-c++
если кто знает хотя бы алгоритм расскажите)

Последний раз редактировалось Stilet; 19.11.2012 в 13:01.
SmallLS вне форума Ответить с цитированием
Старый 19.11.2012, 13:01   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

switch - оператор выбора из конечного числа вариантов.
К примеру:
Код:
int sign(float x){
  if(x<0) return -1;
  if(x>0) return 1;
  return 0;
}

float func(float x, float z){
  switch(sign(z-x)){
    case 1:
      return 2*z+x;
    case 0:
      return z;
    case -1:
      return z-x;
  }
}
Abstraction вне форума Ответить с цитированием
Старый 19.11.2012, 13:15   #3
SmallLS
Новичок
Джуниор
 
Регистрация: 19.11.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
switch - оператор выбора из конечного числа вариантов.
К примеру:
Код:
int sign(float x){
  if(x<0) return -1;
  if(x>0) return 1;
  return 0;
}

float func(float x, float z){
  switch(sign(z-x)){
    case 1:
      return 2*z+x;
    case 0:
      return z;
    case -1:
      return z-x;
  }
}
спасибо большое!
SmallLS вне форума Ответить с цитированием
Старый 19.11.2012, 13:42   #4
SmallLS
Новичок
Джуниор
 
Регистрация: 19.11.2012
Сообщений: 4
По умолчанию

Abstraction
взгляни код вроде по твоему примеру сделал, но компилятор выдает ошибку(

Код:

Код:
#include <cstdlib>
#include <iostream>
using namespace std;
int x,y,z,c;
int sign()
{
 if(z>x)
{
       c=1;
       
       }
        else
        {
            if(z<x)
            {
                c=-1;
                
                   }
      else
      {
      c=0;
      
      }
      }
      }
void func()
{
  sign();
  switch(c)
  {
    case 1:
      y=2*z+x;
      cout<<y<<endl;
    case 0:
      y=z;
      cout<<y<<endl;
    case -1:
     y=z-x;
     cout<<y<<endl;
  }
}
Ошибка:
[Linker error] undefined reference to "WinMain@16" id returned 1 exit status

p.s.
я не стал заморачиваться с переменными объявил их как глобальные

Последний раз редактировалось ACE Valery; 19.11.2012 в 23:19.
SmallLS вне форума Ответить с цитированием
Старый 19.11.2012, 13:55   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

1. Тип проекта виндовый, а должен быть консольный
2. Нет главной функции main
pu4koff вне форума Ответить с цитированием
Старый 19.11.2012, 14:01   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

0) Оформляйте код тегом CODE, пожалуйста.
1) Глобальные переменные - лесом, их использование без необходимости есть простейший способ обеспечить себе неприятности при написании программы сложнее некоторого.
2) Программа должна иметь так называемую точку входа - инструкцию, с которой начинается выполнение. В C++ точка входа обозначается как функция main. У Вас её нет, вот компоновщик и не может собрать программу.
Abstraction вне форума Ответить с цитированием
Старый 20.11.2012, 11:01   #7
SmallLS
Новичок
Джуниор
 
Регистрация: 19.11.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
0) Оформляйте код тегом CODE, пожалуйста.
1) Глобальные переменные - лесом, их использование без необходимости есть простейший способ обеспечить себе неприятности при написании программы сложнее некоторого.
2) Программа должна иметь так называемую точку входа - инструкцию, с которой начинается выполнение. В C++ точка входа обозначается как функция main. У Вас её нет, вот компоновщик и не может собрать программу.
Спасибо всем!
По поводу глобальных переменных я знаю что их лучше не использовать...я решил просто не заморачиваться.
п.с.я все ошибки еще вчера нашел...только забыл отписаться
SmallLS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скорее всего драйвера. Vekster Операционные системы общие вопросы 8 24.07.2012 11:35
не найти ошибку в CSS (скорее всего) lerka HTML и CSS 3 18.02.2011 15:28
Проблема со скриптом на сайте (скорее всего) Alex_Rad Помощь студентам 0 26.05.2010 22:04
задача паскаль, скорее всего массив+рекурсия(хотя у меня другой способ) IvaniuS Помощь студентам 10 23.12.2009 15:34