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

Опишите операторы цикла. Приведите примеры.

13.06.2012, 19:34. Показов 1950. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. Опишите операторы цикла. Приведите примеры.

2. Напишите программу на языке СИ++ сложения двух матриц (двумерных массивов). Даны матрицы A[5][5] и B[5][5]. Надо их определить и проинициализировать, распечатать, получить матрицу C[5][5], которая состоит из сумм элементов массива A и массива B (C[i][j] = A[i][j] + B[i][j]). Результат распечатать. Подсчитать сумму элементов массива C и распечатать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.06.2012, 19:34
Ответы с готовыми решениями:

Условные операторы и операторы цикла, проверка корректности вводимых данных
Привет, ребята. Помогите, пожалуйста, написать код для данной задачи. Примечание: необходимо использовать условные операторы и операторы...

«Языки и технологии программирования» «Операторы цикла. Условные операторы»
Не получается сделать что бы программа выводила все значения в промежутке, она выводит только одно. условия | ((z^3)+sin...

Работа с конструкторами и деструкторами в с++. Приведите пожалуйста какие-то примеры
Помогите пожалуйста ! Нужна программа , которая демонстрирует работу конструкторов и деструкторов в с++. Помогите с кодом простенькой...

9
 Аватар для Spaum145
2 / 2 / 1
Регистрация: 23.08.2009
Сообщений: 21
15.06.2012, 13:16
1ый вопрос - искать в кижках по программированию
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
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
// так полагаю, что массивы типа int. Если double или вдруг(!) string,
// то почти ничего не изменится
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define DIM 5 //dimension -размерность массива
 
void Init(int **A)
{
    for (int i=0; i<DIM; i++){
        for (int j=0; j<DIM; j++)
            A[i][j]=rand()%100;
    }
}
 
void PrintMas(int ** mas)
{
    for (int i=0; i<DIM; i++)
    {
        for (int j=0; j<DIM; j++)
        {
            printf("%3d\t",mas[i][j]);
        }
        printf("\n");
    }
}
 
void SumMas(int ** A, int ** B, int ** C)
{
    for (int i=0; i<DIM; i++)
    {
        for (int j=0; j<DIM; j++)
        {
            C[i][j]=A[i][j]+B[i][j];
        }
    }
}
 
int ElemSum (int ** A)
{
    int count=0;
    for (int i=0; i<DIM; i++)
        for (int j=0; j<DIM; j++)
            count+=A[i][j];
    return count;
}
 
void main()
{
    srand ( time(NULL) );
    //определение
    int **A=new int*[DIM], **B=new int*[DIM], **C=new int*[DIM];
    for (int i=0;i<DIM;i++) 
    {
        A[i]=new int[DIM];
        B[i]=new int[DIM];
        C[i]=new int[DIM];
    }
    
    //инициализация
    Init(A);
    Init(B);
    
    //Вывод A, B
    printf("Massiv A:\n");
    PrintMas(A);
    printf("Massiv B:\n");
    PrintMas(B);
 
    //суммирование A и В
    printf("C = summma(A,B):\n");
    SumMas(A,B,C);
    PrintMas(C);
 
    //сумма элементов массива С
    printf("summma elementov C: %d\n", ElemSum(C));
 
    system("pause");
    //очищение памяти
    for(int i=0; i<DIM; i++) delete A, B;
         delete A, B;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Massiv A:
 19      66      88       1      60
 15      30      56      91      80
 42      81      80      92      47
 27       9      61      16      89
 60      46      62      17      55
Massiv B:
 23      58      11      31      23
  3      28       2      58      94
  6      62      83      67      18
  7      52      91      55      16
  5      18      29      17      41
C = summma(A,B):
 42     124      99      32      83
 18      58      58     149     174
 48     143     163     159      65
 34      61     152      71     105
 65      64      91      34      96
summma elementov C: 2188
Добавлено через 10 часов 29 минут
Забыл добавить массив С в блок освобождения динамической памяти
C++
1
2
3
    //очищение памяти
    for(int i=0; i<DIM; i++) delete A, B, C;
         delete A, B, C;
вспомнил уже когда засыпал)
0
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
15.06.2012, 14:16
Цитата Сообщение от Spaum145 Посмотреть сообщение
//очищение памяти
* * for(int i=0; i<DIM; i++) delete A, B, C;
* * * * *delete A, B, C;
и что это за ерунда?
0
 Аватар для Spaum145
2 / 2 / 1
Регистрация: 23.08.2009
Сообщений: 21
15.06.2012, 14:27
Да, забыл подписать.
C++
1
2
3
    //очищение памяти
    for(int i=0; i<DIM; i++) delete A[i], B[i], C[i];
         delete A, B, C;
т.е. не просто удалить указатели, а потом еще раз их удалить (повторное освобождение памяти), а сначала удалить массивы указателей (A[i], B[i], C[i]), а потом уже массивы указателей на указатели (A, B, C) . Полагаю вы это имели ввиду?

Но это в принципе не относится к вопросам chip046. Но спасибо, что поправили
0
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
15.06.2012, 14:34
все равно ерунда

Добавлено через 5 минут
Spaum145, запустите код, предоставленный ниже. Может поймете ошибку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
class c
{
public:
    ~c()
    {
        std::cout << "1" << std::endl;
    }
};
 
int main(int argc, const char * argv[])
{
    c* a1 = new c[2];
    c* a2 = new c[2];
    c* a3 = new c[2];
    
    delete[]a1, a2, a3;
    
    return 0;
}
0
 Аватар для Spaum145
2 / 2 / 1
Регистрация: 23.08.2009
Сообщений: 21
15.06.2012, 14:47
Судя по выводу деструктор вызывался только два раза... Я все равно не догоняю
0
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
15.06.2012, 14:54
Цитата Сообщение от Spaum145 Посмотреть сообщение
delete A[i], B[i], C[i];
такой синтаксис неприемлим

Во-первых, массивы надо удалять используя оператор delete[]array_name;
Во-вторых, даже если тут исправить, то выражение "delete[]A[i], B[i], C[i]" означает следующее:
это составной оператор и тут память, выделенная под массив элементов A[i], будет освобождена
а с массивами B[i], C[i] ничего не произойдет.
Что и было продемонстрированно в моем примере

правильно надо писать delete[]A[i], delete[]B[i], delete[]C[i];
1
 Аватар для Spaum145
2 / 2 / 1
Регистрация: 23.08.2009
Сообщений: 21
15.06.2012, 15:04
Цитата Сообщение от Spaum145 Посмотреть сообщение
деструктор вызывался только два раза
это потому, что было освобожден один объект класса с, состоящий из двух элементов?
0
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
15.06.2012, 15:11
Цитата Сообщение от Spaum145 Посмотреть сообщение
это потому, что было освобожден один объект класса с, состоящий из двух элементов?
это потому что составной оператор "delete[]a1, a2, a3;" можно разделить на 3 независимых
1. delete[]a1;
2. a2;
3. a3;

Первый освобождает память, выделенную под массив объектов. И вызывает у каждого объекта деструктор. Поскольку в массиве только 2 элемента, то и было напечатан две единички
А операторы 2 и 3 ничего не делают
0
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 16
15.06.2012, 17:49  [ТС]
Цитата Сообщение от sandye51 Посмотреть сообщение
это потому что составной оператор "delete[]a1, a2, a3;" можно разделить на 3 независимых
1. delete[]a1;
2. a2;
3. a3;

Первый освобождает память, выделенную под массив объектов. И вызывает у каждого объекта деструктор. Поскольку в массиве только 2 элемента, то и было напечатан две единички
А операторы 2 и 3 ничего не делают
уважаемые програмисты, спасибо Вам огромное за помощь, я в програмировании ни фига не соображаю, а инст как то заканчивать надо:-) примного благодарен!!!!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.06.2012, 17:49
Помогаю со студенческими работами здесь

Операторы языка С++: операторы цикла (исправьте программу)
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; using namespace std; int main() { int a,n; float y,x; cout&lt;&lt;...

Операторы цикла и операторы передачи управления
Вычислить сумму ряда S с погрешностью эпсилон, задаваемой с клавиатуры. Вывести количество итераций, сделанных при вычислении. Если...

Операторы принятия решения и операторы цикла.
Пожалуйста, помогите. Нужно срочно сделать задания: 1)Ввести с клавиатуры три символа sym1, sym2, sym3. Поменять их значения таким...

насчет перечисления(зачем я объявляю переменную в перечислении? Приведите примеры где удобно использовать перечисление?)
зачем я объявляю переменную в перечислении? Чтобы мог обращаться к элементам перечисления? Правильно ли мое суждение и приведите примеры...

Условные операторы.Операторы цикла
1)По номеру y(y&gt;0) некоторого года определить с-номер его столетия(учесть что к примеру началом 20 столетия был 1901 а не 1900 год.)...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru