Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простые функции, Оформить в виде ф-ций 
V
    Опции темы
18652tasha
Дата 21.1.2009, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.4.2008

Репутация: нет
Всего: нет



Выполнить упражнение оформив каждый пункт задания в виде функции. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.
Код

//---------------------------------------------------------------------------
#pragma hdrstop
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
//---------------------------------------------------------------------------
#pragma argsused
void main()
{
int flag;
int a[8][8] =  { { 1, 2, 3, 4, 5, 6, 7, 8 },
                 { 1,-2, 3, 4, 5, 6, 7 ,8 },
                 { 6, 7, 4, 4,-5, 1, 2, 3 },
                 { 2, 4, 5, 6, 1, 2, 1, 8 },
                 { 9, 2, 3, 6, 4, 1, 0, 1 },
                 { 2, 1, 3, 7, 5, 8, 4,-4 },
                 { 7, 7, 2, 1, 0, 4, 5, 2 },
                 { 3, 3, 4, 2, 1, 4, 2,-1 } };

   const int n=8;
    cout<<"\nIshodna matriza a[i][j]:\n";
     for (int i=0; i<n; ++i)
     {
        for (int j=0; j<n; ++j)
           cout<<a[i][j]<<" ";
        cout<<"\n";
     }
    for (int i=0; i<n; ++i)
    {
       bool flag = true;
       for (int j=0; j<n && flag; ++j) flag = (a[i][j] == a[j][i]);
       if (flag) printf ("%d stroka ravna %d stolbcu \n",i,i);
    }
    for (int i=0; i<n; ++i)
    {
       bool flag = false;
       for (int j=0; j<n && !flag; ++j)  flag = (a[i][j] < 0);
       if (!flag) continue;
       int sum =0;
       for (int j=0; j<n; ++j)  sum+= a[i][j];
       printf ("summa otric.el. stroki %d  ravna %d \n",i,sum);
    }
getch();
     }

помогите... smile 
PM MAIL   Вверх
mes
Дата 21.1.2009, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(18652tasha @  20.1.2009,  23:56 Найти цитируемый пост)
помогите... smile  

а чего не получается то ?
У тя весь код логически по функциям разделен. Просто оформляшь каждый блок for  в виде функции и передаешь туда указатель на массив и размерность.
а потом улучшаешь код путем выноса printf и другой не нужной информации за пределы функции.


Это сообщение отредактировал(а) mes - 21.1.2009, 01:05


--------------------
PM MAIL WWW   Вверх
18652tasha
Дата 21.1.2009, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.4.2008

Репутация: нет
Всего: нет



кхм, я до сего момента о функциях редко слышала, чтоб его это задание, я думала все с ним, так нет нашла в своем варианте еще эту приписку про ф-ции, а уже завтра экзамен...
PM MAIL   Вверх
mes
Дата 21.1.2009, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(18652tasha @  21.1.2009,  00:08 Найти цитируемый пост)
кхм, я до сего момента о функциях редко слышала, чтоб его это задание, я думала все с ним, так нет нашла в своем варианте еще эту приписку про ф-ции, а уже завтра экзамен... 

надо бы чаще уроки посещать )

Добавлено через 10 минут и 20 секунд
вот примитивное разбиение на функции, но думаю на текущем этапе будет тебе достаточно :
Код

void f1 (int **a, int n) // так как матрица квадратная рамерность одна
{
     for (int i=0; i<n; ++i)
     {
        for (int j=0; j<n; ++j)
           cout<<a[i][j]<<" ";
        cout<<"\n";
     }
}

void  f2  (int **a, int n)
{
    for (int i=0; i<n; ++i)
    {
       bool flag = true;
       for (int j=0; j<n && flag; ++j) flag = (a[i][j] == a[j][i]);
       if (flag) printf ("%d stroka ravna %d stolbcu \n",i,i);
    }
}

void f3  (int **a, int n)
{
    for (int i=0; i<n; ++i)
    {
       bool flag = false;
       for (int j=0; j<n && !flag; ++j)  flag = (a[i][j] < 0);
       if (!flag) continue;
       int sum =0;
       for (int j=0; j<n; ++j)  sum+= a[i][j];
       printf ("summa otric.el. stroki %d  ravna %d \n",i,sum);
    }
}
int main()
{
  int ** a;
  int n = 8;
// тут динамическое создание массива :
//

 f1(a,n);
 f2(a,n);
 f3(a,n);

// тут удаление массива
getch();
}

название для функций придумай самостоятельно ...


--------------------
PM MAIL WWW   Вверх
18652tasha
Дата 21.1.2009, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.4.2008

Репутация: нет
Всего: нет



нам вообще С не преподавали, препод дал каждому вариант с задачей и все. Делайте сами. Я ходила пару раз, но какой толк- препод куда нидь уйдет и все, а толкового от него ответа не дождешься. Вот так вот.
PM MAIL   Вверх
mes
Дата 21.1.2009, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(18652tasha @  21.1.2009,  00:54 Найти цитируемый пост)
нам вообще С не преподавали

а какой язык преподавали ? 

Это сообщение отредактировал(а) mes - 21.1.2009, 02:13


--------------------
PM MAIL WWW   Вверх
18652tasha
Дата 21.1.2009, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.4.2008

Репутация: нет
Всего: нет



Образно выражаясь, нас не обучали, препод сказал можете не ходить на занятия (а в конце семестра все нужно сдать на С или С++ или на каком то он еще говорил языке)- мы все коллективно не ходили на технологию программирования. А так в прошлом году был Delphi.
PM MAIL   Вверх
mes
Дата 21.1.2009, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(18652tasha @  21.1.2009,  01:08 Найти цитируемый пост)
Образно выражаясь, нас не обучали, препод сказал можете не ходить на занятия - мы все коллективно не ходили на технологию программирования. 

без комментариев..


--------------------
PM MAIL WWW   Вверх
Kallikanzarid
Дата 21.1.2009, 07:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 9.11.2008

Репутация: 2
Всего: 3



18652tasha, надо сказать, ты понимаешь больше, чем большинство идиотов-"штудентов", которые тут просят помочь. Еще бы инициативу: кодинг - это такая вещь, которой проще научиться в 13 лет, программируя крестики-нолики, чем посещая лекции.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1411 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.