Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/2345: Рейтинг темы: голосов - 2345, средняя оценка - 4.54
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562

Задачи для тренировки и лучшего понимания

15.07.2010, 05:53. Показов 518580. Ответов 1272
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят. Кто-нибудь может дать задачу для тренировки? Приблизительно по всему курсу С++. Буду благодарен за сложную задачу, но которую способен сделать новичок-любитель. Затраты сил-времени не важно. Главное, чтобы это было интересно и не слишком рутинно. + Если найдется человек который даст задачу просьба помогать с кодом, который я буду себя скидывать. Не переписывать за меня, но указывать на ошибки и желательно объяснять. Заранее спасибо.

Список задач, решение которых присутствует в данной теме:
44
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.07.2010, 05:53
Ответы с готовыми решениями:

Элементарные программы, для лучшего понимания языка...
Здравствуйте. Вот сегодня решил что пора изучать с++. Есть пару задач. Начал решать и уже на первой запоролся( суть в том чтобы определить...

Задачи для тренировки и лучшего понимания языка
Предлагаю в этой теме размещать задачи, которые помогут новичкам (и не только) более детально разобраться в основах языка. При размещении...

Литература для лучшего понимания сути программирования
Привет! Подскажите литературу, которая поможет разобраться в сути самого процесса программирования, поможет изучить теорию алгоритмов,...

1272
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
02.08.2010, 14:53
Студворк — интернет-сервис помощи студентам
Арабские в римские
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
38
39
40
41
42
43
#include <stdio.h>
#include <stdlib.h>
 
#define ROMAN_NUMS_SIZE 7
 
char roman_nums[ROMAN_NUMS_SIZE] = { 'I','V','X','L', 'C', 'D', 'M' };
int arabic_vals[ROMAN_NUMS_SIZE] = { 1, 5, 10, 50, 100, 500, 1000 };
 
int main()
{
    int i = 0;
    int num = 0;
 
    char romnum[BUFSIZ];
    char *rnptr = romnum;
 
    printf("please input digit: ");
    scanf("%d", &num);
 
    for(i = ROMAN_NUMS_SIZE - 1; i >= 0; --i)
    {
        while(num >= arabic_vals[i])
        {
            if((num >= arabic_vals[i] * 4) && (i != ROMAN_NUMS_SIZE))
            {
                num -= arabic_vals[i] * 4;
                *rnptr++ = roman_nums[i];
                *rnptr++ = roman_nums[i + 1];
            }
            else
            {
                num -= arabic_vals[i];
                *rnptr++ = roman_nums[i];
            }
        }
    }
 
    *rnptr = '\0';
 
    printf("ROMAN: %s\n\n", romnum);
 
    system("PAUSE");
}
2
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
02.08.2010, 15:21
На счет задачи про камни, как я понял там нужно использовать рекурсию, но как именно..?

=)
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
#include <iostream>
#include <numeric>
 
int main (void)
{
    size_t number_stone;
    int *stone;
 
    std::cout << "Number of stone: ";
    std::cin >> number_stone;
    stone=new int [number_stone];
 
    for (size_t i=0; i<number_stone; i++) {
        std::cout << "Enter weight of the " << i+1 << " stone: ";
        std::cin >> stone[i];
    }
    //////////////////////////
 
    const size_t heap_size=number_stone/2;
    const size_t total_weight=std::accumulate (stone, stone+number_stone, 0);
    
        
    delete []stone;
    return 0;
}
1
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
02.08.2010, 16:40
Римские в арабские
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
38
39
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define ROMAN_NUMS_SIZE 7
 
char roman_nums[ROMAN_NUMS_SIZE] = { 'I','V','X','L', 'C', 'D', 'M' };
int arabic_vals[ROMAN_NUMS_SIZE] = { 1, 5, 10, 50, 100, 500, 1000 };
 
int main()
{
    int num = 0;
    int t = 0;
    int j = 0;
    size_t i = 0;
    size_t len = 0;
    
    char romnum[BUFSIZ];
    
    printf("please input roman digit: ");
    scanf("%s", romnum);
 
    num = 0; len = strlen(romnum);
    for(i = len - 1, t = 0; i >= 0; --i)
    {
        for(j = 0; j < ROMAN_NUMS_SIZE; ++j)
            if(roman_nums[j] == romnum[i])
                break;
        
        if(arabic_vals[j] < t)
            num -= (t = arabic_vals[j]);
        else
            num += (t = arabic_vals[j]);
    }
 
    printf("ROMAN: %d\n\n", num);
 
    system("PAUSE");
}


Добавлено через 1 час 5 минут
Тупой перебор :)
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
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
#define NSTONES 6
 
int main()
{
    int i = 0, j = 0;
    
    int dif = 0;
    int tmp = 0;
    int sum = 0;
    int w_stone[NSTONES];
 
    for(i = 0; i < NSTONES; ++i)
        w_stone[i] = rand() % 100 + 1;
    
    printf("WEIGHTS OF STONES\n");
    for(i = 0; i < NSTONES; ++i)
        printf("%d - %d\n", i, w_stone[i]);
    printf("\n");
 
    for(i = 0; i < NSTONES; ++i)
        sum += w_stone[i];
    
    dif = sum;
 
    for(i = 0; i < NSTONES; ++i)
    {
        for(tmp = 0, j = i; j < NSTONES; ++j)
        {
            tmp += w_stone[j];
 
            if(abs(tmp - (sum - tmp)) < dif)
                dif = abs(tmp - (sum - tmp));
 
            //printf("left heap: %2d | right heap: %2d\n", tmp, sum - tmp);
        }
    }
 
    printf("RESULT: %d\n\n", dif);
 
    system("PAUSE");
}
1
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
02.08.2010, 16:50
fasked, ваша программа даже семпл-тест не проходит .

Добавлено через 1 минуту
Ага, вижу вы условие неправильно поняли.

Добавлено через 1 минуту
Кто же сказал, что на кучки именно так разделяются камни? Совершенно произвольным образом разделять можно.
1
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
02.08.2010, 16:57
Или я действительно не понял условие задания или дело в тесте-примере. По моим скромным подсчетам минимальная разница будет в таком случае:
с одной стороны: 27 + 5 + 5 = 37
с другой стороны: 8 + 13 + 14 = 35
разница: 37 - 35 = 2
в семпле же приведен другой результат почему-то.
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
02.08.2010, 17:02
Цитата Сообщение от Хохол Посмотреть сообщение
Исходные данные
Ввод содержит количество камней N (1 ≤ N ≤ 20) и веса камней W1, …, Wn (1 ≤ Wi ≤ 100 000) — целые, разделённые пробельными символами.
Пришлось еще чето писать.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
02.08.2010, 17:09
Хохол, вы имеете в виду отсутствие ввода в моей программе?
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
02.08.2010, 17:09
Да нет, просто в семпл-тесте первое число - количество камней.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
02.08.2010, 17:15
Цитата Сообщение от Хохол Посмотреть сообщение
Да нет, просто в семпл-тесте первое число - количество камней.
ахах простите меня
и да, кстати. я кинул немного не тот вариант. он действительно не рабочий. только сейчас заметил, что не тот код скопипастил.
вот тут и еще одно вытекающее задание подкидываю.

что надо исправить в моей программе, чтобы она работала верно?

текст программы еще раз
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
38
39
40
41
42
43
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
#define NSTONES 6
 
int main()
{
    int i = 0, j = 0;
    
    int dif = 0;
    int tmp = 0;
    int sum = 0;
    int w_stone[NSTONES];
 
    for(i = 0; i < NSTONES; ++i)
        w_stone[i] = rand() % 100 + 1;
    
    printf("WEIGHTS OF STONES\n");
    for(i = 0; i < NSTONES; ++i)
        printf("%d - %d\n", i, w_stone[i]);
    printf("\n");
 
    for(i = 0; i < NSTONES; ++i)
        sum += w_stone[i];
    
    dif = sum;
 
    for(i = 0; i < NSTONES; ++i)
    {
        for(tmp = 0, j = i; j < NSTONES; ++j)
        {
            tmp += w_stone[j];
 
            if(abs(tmp - (sum - tmp)) < dif)
                dif = abs(tmp - (sum - tmp));
        }
    }
 
    printf("RESULT: %d\n\n", dif);
 
    system("PAUSE");
}
1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
02.08.2010, 17:21
Цитата Сообщение от Хохол Посмотреть сообщение
Я настаиваю >_<

Задача несложная.
Программист должен уметь писать тупой перебор.
Мое решение про камни
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//////////////////////////////////////////////////////////////////////////////////////
//У вас есть несколько камней известного веса W1, …, Wn. Напишите программу, 
//которая распределит камни в две кучи так, что разность весов этих двух куч 
//будет минимальной.
//Исходные данные
//Ввод содержит количество камней N (1 <= N <= 20) и веса камней
//W1, …, Wn (1 <= Wi <= 100 000) — целые, разделённые пробельными символами.
//Результат
//Ваша программа должна вывести одно число — минимальную разность весов двух куч.
//Пример:
//исходные данные
//5
//
//5
//8
//13
//27
//14
//результат
//3
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cmath>
#include <iostream>
#include <numeric>
#include <set>
#include <vector>
//////////////////////////////////////////////////////////////////////////////////////
typedef double                 T_weight;
typedef std::vector<T_weight>  T_weights;
typedef std::set<T_weight>     T_weight_set;
//////////////////////////////////////////////////////////////////////////////////////
struct  T_abs
{
    T_weight operator() (T_weight  weight)
    {
        return abs(weight);
    }
};
//////////////////////////////////////////////////////////////////////////////////////
int  get_min_weight_diff(T_weights  weights)
{
    std::sort(weights.begin(), weights.end());
    T_weights     weight_sums(weights.size());
    T_weight_set  weight_set;    
    do
    {
        //Вычисляем частичные суммы весов текущего сочетания камней.
        std::partial_sum(weights.begin(), weights.end(), weight_sums.begin());        
        T_weight  common_weight_half = weight_sums.back() / 2;
        //Вычитаем из каждой частичной суммы половину общего веса камней.
        std::transform(weight_sums.begin(), weight_sums.end(), 
                       weight_sums.begin(), 
                       std::bind2nd(std::minus<T_weight>(), common_weight_half));
        //Вычисляем модули значений вектора weight_sums.
        std::transform(weight_sums.begin(), weight_sums.end(),                        
                       weight_sums.begin(), T_abs());
        weight_set.insert(weight_sums.begin(), weight_sums.end());
    }while(std::next_permutation(weights.begin(), weights.end()));
    return *weight_set.begin() * 2;
}
//////////////////////////////////////////////////////////////////////////////////////
struct  T_input_weight
{
    int ind_;
    T_input_weight() : ind_(0)
    {}
    void operator() (T_weight&  weight)
    {
        std::cout << "вес камня № "
                  << ++ind_
                  << " = ";
        std::cin >> weight;
    }
};
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите количество камней: ";
    int n;
    std::cin >> n;
    T_weights  weights(n);
    std::for_each(weights.begin(), weights.end(), T_input_weight());
    std::cout << "Минимальная разность весов двух куч этих камней равна: "
              << get_min_weight_diff(weights)
              << std::endl;
    return 0;
}
4
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
02.08.2010, 17:43
Mr.X, алгоритм скорее всего верен, все мои тесты программа прошла
Но. В оригинале решение должно укладываться в 2 секунды. У вас же асимптотика O(n! * n), что очень много, и уже при n = 11 работает долго (На тимусе же у вас Time Limit Exceeded #1).
Предлагаю придумать более оптимальное решение.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
02.08.2010, 23:56
Цитата Сообщение от Хохол Посмотреть сообщение
Mr.X, алгоритм скорее всего верен, все мои тесты программа прошла
Но. В оригинале решение должно укладываться в 2 секунды. У вас же асимптотика O(n! * n), что очень много, и уже при n = 11 работает долго (На тимусе же у вас Time Limit Exceeded #1).
Предлагаю придумать более оптимальное решение.
Да, медленно работает, но я в первом варианте за скоростью и не гнался. Надо будет покумекать.

Добавлено через 5 часов 54 минуты
Более быстрое решение с камнями
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
//////////////////////////////////////////////////////////////////////////////////////
//У вас есть несколько камней известного веса W1, …, Wn. Напишите программу, 
//которая распределит камни в две кучи так, что разность весов этих двух куч 
//будет минимальной.
//Исходные данные
//Ввод содержит количество камней N (1 <= N <= 20) и веса камней
//W1, …, Wn (1 <= Wi <= 100 000) — целые, разделённые пробельными символами.
//Результат
//Ваша программа должна вывести одно число — минимальную разность весов двух куч.
//Пример:
//исходные данные
//5
//
//5
//8
//13
//27
//14
//результат
//3
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cmath>
#include <ctime>
#include <iostream>
#include <numeric>
#include <vector>
//////////////////////////////////////////////////////////////////////////////////////
const size_t  MAX_STOUN_COUNT = 20;
//////////////////////////////////////////////////////////////////////////////////////
typedef double                 T_weight;
typedef std::vector<T_weight>  T_weights;
typedef unsigned long          T_uns;
//////////////////////////////////////////////////////////////////////////////////////
T_weight  get_min_weight_diff(T_weights  weights)
{
    clock_t  cstart  = clock();    
    std::sort(weights.begin(), weights.end());
    T_weight  common_weight_half 
        = std::accumulate(weights.begin(), weights.end(), T_weight()) / 2;    
    T_uns     i_pred            = 0;
    T_weight  sum               = 0;
    T_weight  min_diff          = 0;
    bool      min_diff_is_init  = false;
    for(T_uns i = 0; i < (1U << (weights.size() - 1)) ; ++i)
    {       
        T_uns  i_temp  = i;        
        T_uns  mask    = i ^ i_pred;
        T_uns  pos     = 0;
        while(mask)
        {
            if(mask & 1)
            {
                if(i_temp & 1)
                {
                    sum += weights[pos];
                }
                else            
                {
                    sum -= weights[pos];
                }            
            }
            mask   >>= 1;
            i_temp >>= 1;
            ++pos;
        }
        T_weight  cur_diff = abs(sum - common_weight_half) * 2;
        if(   !min_diff_is_init
           || cur_diff < min_diff)
        {            
            min_diff = cur_diff;
            min_diff_is_init = true;
        }
        i_pred = i;        
    }
    clock_t cend = clock();
    double millis = 1000.0 * (cend - cstart) / CLOCKS_PER_SEC;
    std::cout << std::endl
              << "Время выполнения функции " 
              << millis 
              << " миллисекунд."
              << std::endl;
    return  min_diff;
}
//////////////////////////////////////////////////////////////////////////////////////
struct  T_input_weight
{
    int ind_;
    T_input_weight() : ind_(0)
    {}
    void operator() (T_weight&  weight)
    {
        std::cout << "вес камня № "
                  << ++ind_
                  << " = ";
        std::cin >> weight;
    }
};
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    int n;
    do
    {
        std::cout << "Введите количество камней: ";
        std::cin >> n;
    }while(MAX_STOUN_COUNT < n);   
    T_weights  weights(n);
    std::for_each(weights.begin(), weights.end(), T_input_weight());
    std::cout << "Минимальная разность весов двух куч этих камней равна: "
              << get_min_weight_diff(weights)
              << std::endl;
    return 0;
}
1
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
03.08.2010, 00:03
Mr.X, Accepted

Добавлено через 2 минуты
Мои решения
Раз решение
Тупая рекурсия.
O(2^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
35
36
37
#include <fstream>
#include <cmath>
 
using namespace std;
 
#ifdef ONLINE_JUDGE
#include <iostream>
#else
ifstream cin("input.txt");
ofstream cout("output.txt");
#endif
 
int ar[20];
int n, mi = 987654321, sum = 0;
 
void p(int pos, int curSum)
{
    if(pos == n)
        mi = min(mi, abs(sum - 2*curSum));
    else
    {
        p(pos+1,curSum);
        p(pos+1,curSum+ar[pos]);
    }
}
 
int main()
{   
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        cin >> ar[i];
        sum += ar[i];
    }
    p(0,0);
    cout << mi;
}

Два решение
Те же яйца, только без рекурсии.
O(n * 2^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
35
#include <fstream>
#include <cmath>
 
using namespace std;
 
#ifdef ONLINE_JUDGE
#include <iostream>
#else
ifstream cin("input.txt");
ofstream cout("output.txt");
#endif
 
int ar[20];
int n, mi = 987654321;
 
int f(int x)
{
    int sum1 = 0, sum2 = 0;
    for(int i = 0; i < n; i++)
        if(x & (1<<i))
            sum1 += ar[i];
        else
            sum2 += ar[i];
    return abs(sum1 - sum2);
}
 
int main()
{   
    cin >> n;
    for(int i = 0; i < n; i++)
        cin >> ar[i];
    for(int i = 0; i < (1<<n); i++)
        mi = min(mi, f(i));
    cout << mi;
}

Три решение
Простенькая динамика
O(n*W), где W - максимальная возможная сумма весов.
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 <fstream>
#include <cmath>
 
using namespace std;
 
#ifdef ONLINE_JUDGE
#include <iostream>
#else
ifstream cin("input.txt");
ofstream cout("output.txt");
#endif
 
int ar[20];
bool v[3000000];
int n, mi = 987654321, sum = 0;
 
int main()
{   
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        cin >> ar[i];
        sum += ar[i];
    }
    v[0] = true;
    for(int i = 0; i < n; i++)
        for(int j = sum; j >= 0; j--)
            if(v[j])
                v[j+ar[i]] = true;
    for(int i = 0; i <= sum; i++)
        if(v[i])
            mi = min(mi, abs(sum-2*i));
    cout << mi;
}
5
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
03.08.2010, 09:45
Напиши программку, которая на входе получает дату (Например 25 06 1996), а на выходе выдает день недели, на который пришлась эта дата. (Данные, которые понадобятся при написании программки: в обычном году 365 дней, в високосном 366, в феврале обычного года 28 дней, в феврале високосного года 29, високосный год - это год, номер которого делится на 4 без остатка, ну например 1996 или 2000...)
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
03.08.2010, 09:50  [ТС]
nikkka,

Не по теме:

Угу) Ты смотри ведь напишу сейчас как вчера прогу с числами :D Тут то всего 366 вариантов, а не 1000)


Ща попробую посидеть... Пить видимо надо прекращать. Голова работать не желает.
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
03.08.2010, 09:53
ты учти, надо писать на любой год, а не только на 2010. ну ладно, не буду теюбя мучить. моя подсказка состоит из двух слов: формула зеллера
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
03.08.2010, 10:00  [ТС]
nikkka, Ща напишу.
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
03.08.2010, 10:08
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Функция Алгоритм(А)
П=2
В=1
Ит=0
Пока В>0 цикл
М=А%П;
А=(А-М)/П;
Ит=Ит+И*B;
Если А=0, тогда 
В=0;
иначе 
В=В*10;
Конец Если;
Конец Цикла;
Возврат (Ит);
Конец функции
Чему равна переменная Выход=Алгоритм(9)
Что делает приведенная функция?
Какую роль выполняет П?
Что произойдет, если установить ее равной 3,4,9 ?

Добавлено через 1 минуту
нельзя ничем пользоватсья (компилятором к примеру). так же нельзя переводить текст в код с++ - решать так, визуально.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
03.08.2010, 10:10  [ТС]
И втф? ИТ?
шзн: Ит=Ит+И*B?
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
03.08.2010, 10:16
есть ещё одно очень интересное задание. вывести найбольшее из двух заданных чисел. смешно? а если
так
НИКАКИХ while, do, for, if!!!!! только арифметика!
?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.08.2010, 10:16

Набор задачь для тренировки и улучшения понимания программирования
Добрый вечер всем. Если кто знает модскажите где можно найти подобный набор задачь...

Проверить на правильность и закомментировать весь код для лучшего понимания
Всем здравствуйте. Условие задачи - Заданная матрица целых чисел размером (N, N). Найти среднее арифметическое элементов в окрашенной...

Нужны задачи для тренировки
Киньте задачки на классы......а то в самоучителе, по которому я учу Сишку....приведены задачки, касающиеся только математики.....сами...

Нужны задачи для тренировки
Здравствуйте киньте пожалуйста задания по с++ для человека начинающего изучать Turbo с++

Нужны задачи для тренировки
Вот не давно был школьный этап по программирование в школе(олимпиады). Меня закинули на городскую, вот только писал ту олимпиаду на...


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

Или воспользуйтесь поиском по форуму:
440
Закрытая тема Создать тему
Новые блоги и статьи
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru