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

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

Войти
Регистрация
Восстановить пароль
 
Azdeman
Модератор
Эксперт HTML/CSSЭксперт PHP
1653 / 1197 / 318
Регистрация: 12.01.2011
Сообщений: 4,732
#1

Двумерные массивы. Процедуры и функции - C++

10.11.2011, 22:28. Просмотров 656. Ответов 10
Метки нет (Все метки)

нужер зделать программку, помогите если сможете:

В матрице А (n х n) определите количество строк, элементы ко-
торой образуют арифметическую прогрессию. Используйте подпро-
грамму проверки строки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
10.11.2011, 22:44     Двумерные массивы. Процедуры и функции #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
#include<iostream>
using std::cout;
using std::cin;
 
 
bool isAriphmProg(int [], const int, int);
 
int main()
{
    const int lines = 5;
    const int rows = 3;
    int step = 3;
    int count = 0;
    int matrix[rows][lines] = {{1,4,7,10,13},{2,5,8,11,14},{5,3,4,2,1}};
 
    for(int j = 0; j < rows; ++j){
        if(isAriphmProg(matrix[j], lines, step)){
            count++;
        }
    }
 
    cout << count << " row(s) is(are) arithmetical progression ";
    cin.get();
    return 0;
}
 
bool isAriphmProg(int a[], const int size, int step){
    for(int i = 1; i < size; i++){
        if(a[i] != a[i-1]+step){
            return false;
        }
    }
    return true;
}
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
10.11.2011, 22:49     Двумерные массивы. Процедуры и функции #3
greeezz, а почему у вас step то заранее определен? он может иметь какое угодно значение, причем возможно разное для каждой строки.
Azdeman
Модератор
Эксперт HTML/CSSЭксперт PHP
1653 / 1197 / 318
Регистрация: 12.01.2011
Сообщений: 4,732
10.11.2011, 22:50  [ТС]     Двумерные массивы. Процедуры и функции #4
Цитата Сообщение от greeezz Посмотреть сообщение
вот как то так получилось
спасибо

Добавлено через 34 секунды
neske, ну так а как де будет правильно ?
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
10.11.2011, 22:53     Двумерные массивы. Процедуры и функции #5
neske, я сделал шаблон который автор темы может доработать так как ему надо. тут можно много чего не определять заранее. в т.ч. и элементы матрицы и ее размер.
функция которую я написал может быть использована для разных значений шага для каждой строки, за исключением отицательного.
Azdeman
Модератор
Эксперт HTML/CSSЭксперт PHP
1653 / 1197 / 318
Регистрация: 12.01.2011
Сообщений: 4,732
10.11.2011, 22:55  [ТС]     Двумерные массивы. Процедуры и функции #6
Цитата Сообщение от greeezz Посмотреть сообщение
может доработать так как ему надо
еще решение нужно в борланде =( немного не там тему создал ..
greeezz
10.11.2011, 22:58
  #7

Не по теме:

Цитата Сообщение от Azdeman Посмотреть сообщение
немного не там тему создал ..
с кем не бывает

Thinker
Эксперт C++
4219 / 2193 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.11.2011, 22:58     Двумерные массивы. Процедуры и функции #8
Функция проверки на то, образуют ли элементы массива арифметическую прогрессию:
C++
1
2
3
4
5
6
7
8
9
int Check(const int *a, const int n) 
{
    int d, i;
    d = a[1] - a[0];
    i = 1;
    while (++i < n &&  a[i] - a[i - 1] == d)
       ;
    return i >= n;
}
Azdeman
Модератор
Эксперт HTML/CSSЭксперт PHP
1653 / 1197 / 318
Регистрация: 12.01.2011
Сообщений: 4,732
10.11.2011, 22:58  [ТС]     Двумерные массивы. Процедуры и функции #9

Не по теме:

блиин друзья мой друг "Ид*от" программу нужно в паскале написать ... может поможете?



Добавлено через 21 секунду

Не по теме:

извените конечно

neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
10.11.2011, 23:00     Двумерные массивы. Процедуры и функции #10
greeezz, дело в том, что функция не должна принимать шаг, он нам не известен.
а шаблон будет выглядеть как - то так:
C++
1
2
3
4
5
6
7
bool func(const int *arr, const int size) {
    int step = arr[1] - arr[0];
    for (int i = 1; i < size - 1; ++i)
        if (arr[i + 1] - arr[i] != step)
            return false;
    return true;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2011, 01:02     Двумерные массивы. Процедуры и функции
Еще ссылки по теме:

Двумерные массивы и возврат значения из функции C++
C++ Двумерные массивы и функции
C++ Указатели: функции, двумерные массивы
Двумерные массивы через функции C++
C++ Вызвано исключение: нарушение доступа для чтения. Функции и двумерные массивы

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

Или воспользуйтесь поиском по форуму:
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
11.11.2011, 01:02     Двумерные массивы. Процедуры и функции #11

Не по теме:

neske, спасибо за пояснения. Только вы поймите правильно, решение которое я предложил блыо сделано умышленно. Задача элементарная. Если тот кому она нужна попытается в ней разобраться, то поймет что в ней можно что-то доработать, будет задавать вопросы. А тот кому лень разбираться, не то что не сделает никаких выводов, он забудет завтра ваше решение, даже если оно самое оригинальное и самое лучшее. Автор даже не посторался выполнить поиск по форуму. Задач по прогрессиям много решелась.


Azdeman
программу нужно в паскале написать ... может поможете?
пример прогрессии на паскале

Не по теме:

Azdeman

блиин друзья мой друг "Ид*от"
... глубокий смысл у фразы однако

Yandex
Объявления
11.11.2011, 01:02     Двумерные массивы. Процедуры и функции
Ответ Создать тему
Опции темы

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