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

Задачи по программированию - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
globys363
0 / 0 / 0
Регистрация: 31.10.2010
Сообщений: 8
12.09.2012, 19:01     Задачи по программированию #1
Добрый вечер друзья, помогите пожалуйста с задачами по С++:
1)Дана матрица 6х6 целого типа. Создать одномерный массив, содержащий элементы матрицы, стоящие до максимального значения матрицы, считая от ее первого элемента (Fn1). Для созданного массива определить сумму и произведение положительных элементов (Fn2).

2)Сформировать динамический список, считая, что длина списка (количество элементов) задана.
В составе программы описать функцию, которая оставляет в списке только первые вхождения одинаковых элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ProNoooob
71 / 71 / 6
Регистрация: 14.10.2009
Сообщений: 121
12.09.2012, 20:00     Задачи по программированию #2
Цитата Сообщение от globys363 Посмотреть сообщение
Добрый вечер друзья, помогите пожалуйста с задачами по С++:
2)Сформировать динамический список, считая, что длина списка (количество элементов) задана.
В составе программы описать функцию, которая оставляет в списке только первые вхождения одинаковых элементов
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
#include <stdlib.h>
 
#define LIST_SIZE 100
 
struct List
{
    int data;
    List *next;
};
 
List *BuildList(int _size);
List *ClearList(List *_list);
bool  FindDuplicate(List *_list, int _data);
 
int main()
{
    List *list;
 
    list = BuildList(LIST_SIZE);
 
    list = ClearList(list);
 
    return 0;
}
 
List *BuildList(int _size)
{
    List *list = 0;
    List *new_list;
 
    for(int i = 0; i < _size; i++)
    {
        new_list = new List();
        new_list->data = rand() % 5;
        new_list->next = list;
        list = new_list;
    }
 
    return list;
}
 
List *ClearList(List *_list)
{
    List *clear = 0;
    List *temp;
 
    while(_list)
    {
        if(FindDuplicate(_list->next, _list->data))
        {
            _list = _list->next;
        }
        else
        {
            temp = _list->next;
            _list->next = clear;
            clear = _list;
            _list = temp;
        }
    }
 
    return clear;
}
 
bool FindDuplicate(List *_list, int _data)
{
    while(_list)
    {
        if(_list->data == _data)
            return true;
 
        _list = _list->next;
    }
 
    return false;
}
Очень просто.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
12.09.2012, 21:39     Задачи по программированию #3
1
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <iomanip>
#include <memory>
 
int main()
{
   std::size_t const r(6), c(6);
   int mx[r][c];
   srand(time(0));
   //std::cout << sizeof(mx);
   for(int i = 0; i < r * c; ++i)
   {
       std::cout << std::setw(5) << std::left << (*(*mx + i) = rand() % 41 - 20);
       if(0 == (i + 1) % 6) std::cout << '\n';
   }
   int* pMax = std::max_element(*mx, *mx + r * c);
   std::ptrdiff_t dist = pMax - *mx;
   if(dist)
   {
       std::cout << "\nArray:\n";
       std::unique_ptr<int[]> pArr(new int[dist]);
       unsigned long long sum(0), prod(1);
       for(int i = 0; i < dist; ++i)
       {
           pArr[i] = *(*mx + i);
           if(pArr[i] > 0)
           {
                sum += pArr[i];
                prod *= pArr[i];
           }
           std::cout << pArr[i] << "  ";
       }
        if(sum)
            std::cout << "\nsum: " << sum << "\nprod: " << prod << std::endl;
   }
   else std::cerr << "dist: " << dist << std::endl;
   return 0;
}
globys363
0 / 0 / 0
Регистрация: 31.10.2010
Сообщений: 8
12.09.2012, 23:29  [ТС]     Задачи по программированию #4
Огромное спасиба за помощь
Yandex
Объявления
12.09.2012, 23:29     Задачи по программированию
Ответ Создать тему
Опции темы

Текущее время: 07:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru