Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 31.12.2011
Сообщений: 4
1

Манипуляции с массивами. Как сделать?

31.12.2011, 16:10. Показов 1763. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Товарищи, с наступающим всех!

Очень нужна помощь. А то в новом году не допустят к сессии.

Есть две небольших задачки. Алгоритмы писать не надо, просто написать какие функции надо использовать.
1) Сделать пару манипуляций с массивом. И вывести сумму элементов в MessageBox. MessageBox, в принципе не столь важен, главное работа с массивом.
2) Найти дробную часть числа.

Все комментарии сделал в коде, думаю будет понятно. Вроде все расписал. Но если что, то могу дополнительные комментарии сделать.

Задача №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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "stdafx.h"
#include <Windows.h> // для MessageBox
 
double ArrayManipulation(double array[]); // функция для работы с массивом
 
int _tmain(int argc, _TCHAR* argv[])
{
    double sum = 0.0; // сумма элементов массива
    double my_array[] = {15.3, 12.0, 12.0, 7.7, 3.3, 4.0, 1.5, 8.0, 9.0, 19.6, 18.0}; // исходный (передоваемый) массив
 
    sum = ArrayManipulation(my_array);
 
    // 7) Как вывести параментр sum в MessageBox???
 
    MessageBox(NULL, L"Сумма элементов Sum массива my_array[] равна ", L"Решение", MB_ICONINFORMATION | MB_OK);
 
    
    return 0;
}
 
double ArrayManipulation(double array[])
{
    int n = 0; // количество элементов в исходном (передоваемом) массиве
    double sum = 0.0; // сумма элементов массива
    double inner_array[] = {0}; // внутренний массив 
 
    // А можно ли как-нибудь задать безразмерный массив???
    // Что-то наподобие: double inner_array[];
 
    // Собственно, основное что нужно сделать...
    /*
    
    Среда: Microsoft Visual Studio 2010 C++ Express 
    
    Писать алгоритмы не надо. Нужны наиболее подходящие стандартные функции C++ и что для этого подключаем в заголовке.
    Единственное, последовательность действий должна быть именно такой. Эта условия задачи.
 
    1) Определить размерность исходного (передоваемого) массива array[] и присвоить это значение параметру n.
 
    2) Поменять размерность внутреннего массива inner_array[] на размерность исходного (передоваемого) массива array[].
    Это как раз то, что мы нашли в пункте номер 1.
 
    3) Скопировать ВСЕ элементы исходного массива array[] во внутренний массив inner_array[]
 
    4) Отсортировать внутренний массив inner_array[] по возрастанию 
 
    5) Отсортировать внутренний массив inner_array[] по убыванию
 
    */
 
    // 6) Найти сумму всех элементов inner_array[], но это я вроде знаю. :) Так что основное это манипуляции с массивом.
 
    for(int i = 0; i <= n - 1; i++)
        sum += inner_array[i];
 
    return sum;
}
Задача №2:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    double x = 4.7;
    double x_FractionalPart = 0.0; 
 
    /*
 
    Вопрос??? Как наити дробную часть x (т.е. в данном примере x_FractioanPart должно быть равно 0.7)???
    
    x_FractionalPart = ???;
    
    Смотрел math.h, там такого нет :(
    */
 
    return 0;
}
PS. Еще раз всех с наступающим.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.12.2011, 16:10
Ответы с готовыми решениями:

Как сделать это с массивами?
Задан (и уже заполнен положительными числами) массив int A. Необходимо написать фрагмент программы,...

Как сделать внутри Input следующие манипуляции
Друзья, всем добрый ночи! Я на форуме новичок, так же как и в html-верстке. Прошу Вас помочь в...

Сделать манипуляции с приведенной ниже таблицей
Коэффициент пересчета = 1,2 % если средний заработок более 5000 , в противном случае 1,5 %....

Форумчане ! не знаю,как сделать задачу с двумерными массивами
Дан двумерный массив размером n*m, заполненный случайным образом. 2. Вставить после каждого...

6
8 / 8 / 3
Регистрация: 22.12.2011
Сообщений: 14
31.12.2011, 16:46 2
2)
double x =4.7;
double x_FractionalPart = x - int(x)
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
31.12.2011, 16:47 3
2.

C
1
x_FractionalPart = x - floor (x);
Если препод окажется более-менее шарящим, то он скажет, что такой код для отрицательных чисел не подойдёт, в этом случае надо добавить код:

C
1
2
if (x < 0)
  1.0 - x_FractionalPart;
Это из-за того, что у floor округление всегда делается в меньшую (по значению) сторону, а потому для отрицательных чисел меньшая сторона удаляет число от нуля

Добавлено через 52 секунды
Цитата Сообщение от S_A_L Посмотреть сообщение
2)
double x =4.7;
double x_FractionalPart = x - int(x)
Проблема с этим кодом такая, что для больших чисел приведение к int'у будет с потерей точности. Правда студентам об этом задумываться не положено, а потому такой вариант сойдёт
2
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
31.12.2011, 16:52 4
Цитата Сообщение от Andrey1990 Посмотреть сообщение
просто написать какие функции надо использовать.
сортировка
сумма
0
62 / 35 / 3
Регистрация: 05.10.2011
Сообщений: 137
31.12.2011, 17:03 5
Цитата Сообщение от Evg Посмотреть сообщение
в этом случае надо добавить код:
C
1
2
if (x < 0)
 1.0 - x_FractionalPart;

C
1
if (x < 0) x_FractionalPart = 1. - x_FractionalPart;
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
31.12.2011, 17:14 6
да, ошибся
0
0 / 0 / 0
Регистрация: 31.12.2011
Сообщений: 4
31.12.2011, 18:13  [ТС] 7
Рябят спасибо! Со второй задачкой понятно все.

А вот насчет первой, где массивы, не очень. Можно немного поподробнее, а то я не очень въехал.
С sort я ещё потыкаюсь, может чё получится).

А вот как быть с выводам sum (сумма элементов в массиве) в MessageBox??? ) То что в ссылке, это совсем не то. Там просто суммирование.

PS. И , кстати, как избежать потери точности при нахождении дробной части? А то вдруг мне такой вопрос на засыпку зададут?)

Добавлено через 3 минуты
Слушайте, а самое главное-то!)) Помимо сортировки то надо ещё размерность исходного массива выяснить, переопределить размер внутреннего и скопировать один в другой.
С этим то как быть???? ))))
0
31.12.2011, 18:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.12.2011, 18:13
Помогаю со студенческими работами здесь

Как изменить функцию GetSuit, нужно заменить If-ы массивами и сделать все в одну строчку кода
enum Suits { Wands, Coins, Cups, Swords } private static string GetSuit(Suits suit) {

Как осуществить с БД манипуляции
Подключил базу данных PHPMYADMIN ( MYSQL) . Подключил ее к Windows Form. 5 кнопок , отвечающие за...

Манипуляции с массивом, как с List<>
Всем привет может кто-нибудь знает, как решить проблему..? в своей проге я создаю, список...

Как отследить в Win32 манипуляции с файлами?
Добрый день! Помогите пожалуйста, по мере возможностей. Постановка задачи: нужно отследить в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru