Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
Наташа С.
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 8
#1

Ветвления - C++

25.10.2009, 16:43. Просмотров 2287. Ответов 10
Метки нет (Все метки)

Всем привет! Задали задачку :
"С помощью операторов ветвлений и присваивания записать фрагмент программы, вычисляющий значение переменной n по следующему правилу:
n :=
[ n+1, при i=4,
[ a+b, при i=1 или i=7 или i=9,
[ a-b в остальных случаях

Народ, надо написать прогу с помощью оператора switch... Я писала с помощью if, сказали через switch пиши... Все заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2009, 16:43     Ветвления
Посмотрите здесь:

Ветвления - C++
Помогите решить данную задачу.У меня она расчитывает только 1вое выражение.

ВЕТВЛЕНИЯ В C++ - C++
Даны вещественные x, y, z. Вычислить: U= Выполнить задания двумя способами: с использованием оператора if и с использованием...

Оператор ветвления - C++
Дано целое четырехзначное число.Определить,является ли произведение его цифр трехзначным числом.Выходной файл должен содержать одно слово,...

операторы ветвления - C++
Вводиться двузначное число. Определить, равен ли квадрат этого числа учетверенной сумме кубов его цифр. Например, для числа 48 ответ...

Основы ветвления - C++
Встретился на сайте с такой подачей ветвления: if ( !qwe ) Что значит восклицательный знак, неравенство?

Ветвления и циклы - C++
Пожалуйста помогите сделать!очень нужно:umnik:

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
25.10.2009, 16:47     Ветвления #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
switch (i)
{
    switch (i)
    {
    case 4:
        n++;
        break;
    case 1:
        n = a + b;
        break;
    case 7:
        n = a + b;
        break;
    case 7:
        n = a + b;
        break;
    default:
        n = a - b;
    }
Evg
Эксперт CАвтор FAQ
17463 / 5701 / 361
Регистрация: 30.03.2009
Сообщений: 15,648
Записей в блоге: 26
25.10.2009, 16:50     Ветвления #3
qwert, в Switch'е можно склеивать альтернативы по разным ключам

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        switch (i)
        {
        case 4:
                n = n + 1; //  <--- при такой записи у преподавателей будет меньше вопросов
                break;
        case 1:
        case 7:
        case 9:
                n = a + b;
                break;
        default:
                n = a - b;
                break; // <--- влепил ещё это, по той же причине
        }
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
25.10.2009, 16:53     Ветвления #4
Я знаю, я по той же причине, что и n = n + 1 так сделал.
Evg
Эксперт CАвтор FAQ
17463 / 5701 / 361
Регистрация: 30.03.2009
Сообщений: 15,648
Записей в блоге: 26
25.10.2009, 16:55     Ветвления #5
Цитата Сообщение от qwert Посмотреть сообщение
Я знаю, я по той же причине, что и n = n + 1 так сделал.
По опыту именно к дублированию case'ов в данной ситуации неизбежно прикопаются
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
25.10.2009, 16:57     Ветвления #6
Так прикопаться ведь можно к чему угодно, и к break после default.
Наташа С.
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 8
25.10.2009, 17:08  [ТС]     Ветвления #7
qwert, спасибо, но я неного не поняла :

у меня есть файл fp.out, туда после работы проги записывается значение n

вот код программы исправьте пожалуйста...

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
34
#include <stdio.h>
 
int n, i, a, b;
 
switch(i);
 
FILE *fp.out;
 
int main(void)
{
fp.out = fopen("fp.out","w");
fprintf(fp,"n=%d",n);
switch (i)
{
        switch (i)
        {
        case 4:
                n++;
                break;
        case 1:
                n = a + b;
                break;
        case 7:
                n = a + b;
                break;
        case 7:
                n = a + b;
                break;
        default:
                n = a - b;
        }
return 0;
 
}
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
25.10.2009, 17:16     Ветвления #8
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
34
35
36
37
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    setlocale (LC_ALL, ".1251");
    int n, i, a, b;
    cout << "Введите i, a, b\n";
    cin >> i >> a >> b;
    FILE * f;
    if (!(f = fopen ("fp.txt", "wt")))
    {
        cout << "Error\n";
        return 1;
    }
    switch (i)
    {
    case 4:
        n = n + 1;
        break;
    case 1:
        n = a + b;
        break;
    case 7:
        n = a + b;
        break;
    case 9:
        n = a + b;
        break;
    default:
        n = a - b;
        break;
    }
    fprintf (f, "%d", n);
    fclose (f);
    return 0; 
}
Evg
Эксперт CАвтор FAQ
17463 / 5701 / 361
Регистрация: 30.03.2009
Сообщений: 15,648
Записей в блоге: 26
25.10.2009, 17:20     Ветвления #9
Цитата Сообщение от qwert Посмотреть сообщение
Так прикопаться ведь можно к чему угодно, и к break после default.
Просто поводы для прикапывания у препов более-менее среднестатистические
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
25.10.2009, 17:21     Ветвления #10
Может быть.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2009, 17:39     Ветвления
Еще ссылки по теме:

Алгоритмы ветвления - C++
Составить программу, которая выводит на экран слово «ИСТИНА», если условие выполнено или слово «ЛОЖЬ», если условие не выполнено. Данные...

Циклы и ветвления - C++
помогите плииииз мне сегодня в 8 утра сдавать) 4. Вывести на консоль простые числа, начиная с 2, заканчивая ближайшим простым...

Операторы ветвления С++ - C++
Дана точка на плоскости с координатами(x,y). Составить программу,которая выдает одно из сообщений &quot;да&quot;,&quot;нет&quot;,&quot;на границе&quot; в зависимости от...

оператор ветвления - C++
есть задание, надо найти пару значений (вводимых) которые в суме будут равны третему, я вроде бы написал програму ну она почему-то...


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

Или воспользуйтесь поиском по форуму:
Наташа С.
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 8
25.10.2009, 17:39  [ТС]     Ветвления #11
Всем спасибо!
Yandex
Объявления
25.10.2009, 17:39     Ветвления
Ответ Создать тему
Опции темы

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