Помогите написать программу на С++

-=Mafia=-
8/17/2007, 12:36:32 PM
Дана целочисленная матрица. Определить:
1) Сумму элементов в тех строках, которые содержат хотябы один отрицательный элемент;
2) Номер столбца, в котором стоит минимальный элемент
do-do
8/17/2007, 3:20:43 PM
wink.gif Тупая блок схема подойдет ?

i,j - индекс столбца и индекс строки соответсвенно
a - элемент матрицы
y=0 - вспомогательная переменна
N,M - размерность матрицы

функция сумма(j) - функция суммирует строку элементов
K=0
цикл по всем столбцам строки j
K=K+a
return K

функция минимум(j) - функция находит минимальный элемент в строке
l-вспомогательная переменная
NN-вспомогательная переменная
l=a присвоим переменной значение первого элемента строки j
цикл по элементам сроки начиная со второго
если l>a тогда {l=a;NN=текущий индекс}
return NN

тело программы
Инициализация матрицы a
цикл по всем строкам
цикл по всем столбцам (т.е. по элементам строки)
Если y>a тогда printf(CYMMA(j),минимум(j));



Думаю в код такое перегнать легко
ole256
8/17/2007, 6:10:37 PM
Я бы слегка другой набор функций написал:

1. Поиск минимального элемента в матрице. Возвращает номер столбца.
2. Сумма элементов строки. Возвращает int.
3. Проверка, есть ли в строке хоть один отрицательный элемент. Возвращает bool.

Кстати, в функции надо передавать и саму матрицу с ее размерностью, в С++ свойства length у массива нет.
do-do
8/17/2007, 6:43:02 PM
глобально можно задать размер матрицы
DELETED
8/17/2007, 7:53:16 PM
CODE #include <stdio.h>
#include <tchar.h>

void JustDoIt( int** pArray, int nRows, int nColumns ) {
// Настоящий указатель на массив
int* pPtr = (int*)pArray;

// В этой байде мы будем хранить суммарное и нижнее значение столбца
typedef struct _RESULT {
 int nLowestValue;
 int nTotalValue;
 int nColumn;
} RESULT, *PRESULT;

// На самом деле в этой.. :)
PRESULT pResults = new RESULT[nRows];

// Обнуляем массив промежуточных результатов
for ( int y = 0; y < nRows; y ++ ) {
 pResults[y].nTotalValue = pResults[y].nLowestValue = 0;
 pResults[y].nColumn = -1;
};

// Считаем сумму всех значений по строкам и, заодно, ищем нижнее
for ( int y = 0; y < nRows; y ++ ) {
 for ( int x = 0; x < nColumns; x ++ ) {
  int nValue = pPtr[y*nColumns+x];
  pResults[y].nTotalValue += nValue;
  if ( pResults[y].nLowestValue > nValue ) {
   pResults[y].nLowestValue = nValue;
   pResults[y].nColumn = x;
  };
 };
};

// Теперь фильтруем базар и выводим результаты
RESULT YetAnotherResult = { 0, 0, 0 };
for ( int y = 0; y < nRows; y ++ ) {
 if ( pResults[y].nLowestValue < 0 ) {
  // +1 надо убрать, тогда номер строки будет па-пацански
  printf ( "Строка %d имеет отрицательный элемент %d. Сумма значений строки: %d\r\n", y + 1, pResults[y].nLowestValue, pResults[y].nTotalValue );
 };
 if ( YetAnotherResult.nLowestValue > pResults[y].nLowestValue ) {
  YetAnotherResult.nLowestValue = pResults[y].nLowestValue;
  YetAnotherResult.nColumn = pResults[y].nColumn;
 };
};

// Собсснно все... +1 надо убрать, тогда номер столбца будет па-пацански
printf ( "\r\nСтолбец %d имеет минимальный элемент %d.\r\n", YetAnotherResult.nColumn + 1, YetAnotherResult.nLowestValue );

delete ( pResults );
}

int main(int argc, _TCHAR* argv[]) {
int a[3][4] = { { 10, 200, -11, 10 },
             { -1, 100, 10, 000 },
                { 0, 000, 00, 10 } };

JustDoIt( (int**)a, 3, 4 );
}
do-do
8/17/2007, 11:26:46 PM
педагог бля :)
Мне тупые студенты надоели ужо - пущай хоть кодил бы сам.
Экзамен, компьютерный класс, интернет, раздал билеты, читаю книгу, народ ломится в сеть и ищет ответы.
Подходят, на 5 листов ответ, мелким почерком. Беру бумажку, откладываю в сторону и спрашиваю НУ
Ничего :)
Пока переписывал, даж в смысл не вник
DELETED
8/17/2007, 11:42:49 PM
Я первый вариант с забавной ошибкой запостил. Потом подумал, и перепостил. Таки преподаватель поймет, что не сам писал. :) Ибо кто сам писал, на НУ ответит. ?)
do-do
8/18/2007, 12:52:08 AM
Ответит :)
Кстати есть вменяемые люди, обычно работающие в фирмах по профилю обучения, проблему руками знают. У таких не грех и поучиться всяким тонкостям и хитростям.
Помню, скоро экзамен - подходит студентка - говорит Вы нам Дайте вопросы и Ответы, а мы их выучим :)
Спрашиваю, а зачем?
Не понимает.
Говорю, ответы я и так знаю (ну коли билеты готовлю :) ), так что мне не нужны они, мне важно, что вы понимаете :)

Самое, что удивительное, народ бабки (и не малые) платит за учебу, на лекции не ходит, хочет на шару проехать.... типа видать платят, шоб от армии откосить
DELETED
8/18/2007, 2:18:43 AM
Хех.
Может -=Mafia=- гуманитарий. Нафиг ей программа на С++? :)
do-do
8/18/2007, 2:32:07 AM
А нафик мне был Марксизм-Ленинизм ? Но вишь ли широту взглядов надо все ж РАЗВИВАТЬ, затрачивать усилия. Если был курс по С/C++ худо бедно чел. слышал что такое main - но если такие элементарные задачи не смочь сделать, так ведь логическое мышление и гуманитарию нужно.

Еще вспомни как люди дипломы пишут...copy paste. Листал я такое, куски даже не сшиты меж собой, так лежат - непонятными (или непонЯтыми) кусками
ole256
8/18/2007, 7:22:41 AM
-=Mafia=- , только когда программу будете писать, не забудьте сделать, чтобы размерность матрицы задавалась с клавиатуры: Функции printf/scanf или потоки cout/cin.
do-do
8/18/2007, 1:27:48 PM
в учебных целях так не морочатся, обычно (!) уже матрица готова :) и лежит в текстовом формате рядом с исполняемым файлом
Препод ее пальцами меняет и глядит шо получается.
Так, что надо файловые операции использовать :) Что ж предлагаю доброму самаритянину JeyLo и еще раз помочь гуманитарию.

Дан текстовый файл, матрица записана в естественном виде, по строкам, число столбцов и строк больше 1
Написать функцию считывающую матрицу в массив и сразу же подсчитывающую размерность матрицы
Shaiya
8/20/2007, 2:26:05 AM
(do-do @ 18.08.2007 - время: 09:27) Дан текстовый файл, матрица записана в естественном виде, по строкам, число столбцов и строк больше 1
Написать функцию считывающую матрицу в массив и сразу же подсчитывающую размерность матрицы
Наш препод по ЛО САПР и Оптимизации в САПР, в рамках которых мы и изучали С++, именно так и делал - практически все задания лежали во внешних файлах... Господи, как же давно это было... wacko.gif я почти ничего не помню из синтаксиса... blink.gif
-=Mafia=-
8/20/2007, 1:24:50 PM
Спасибо, всем за помощь
Pcixopat
12/21/2007, 5:23:19 PM
ПОМОГИТЕ НАПИСАТЬ ПРОГУ НА С++ ПЛИИИЗ!!!
4 задания, помогите что сможете!
1)
Дан номер года .Найти число дней в году

В григориганском календаре каждый год, номер которого делится на 4,являeтся високосным, за исключением тех, которые делятся на 100 и не делятся на 400 нацело. 1900г.-невисокос. 2000г.-високосный.

2)
Задан текст. Каждая строка текста имеет следующую структуру: Фамилия - <фамилия> Имя - <имя> Отчество - <отчество>. Выделить правые слова из каждой пары слов.

3)
Написать программу для вычисления значения функции, заданной с помощью рядов. При условии, что заданная функция имеет аналитическое решение, сравнить значение рядной функции с точным. Вычислить значения невязки значений рядной и стандартной (Windows) функций , проанализировать динамику изменения значения невязки в зависимости от количества слагаемых в ряде.
Вычисление sec(x), sec(x)=Сумма(снизу n=0 сверху бесконечность)*En/2n!*x(в степени 2n)(x(в степени 2)<Пи(в степени 2)/4)

4)
Матрица А из N стpок и N столбцов размещена в одномерном массиве по строкам. Поменять местами К-ю и L-ю строки матрицы (К и L заданы). Результат напечатать по строкам.
do-do
12/21/2007, 6:23:13 PM
По первой задаче, загляни на https://www..********.ru/docs/analis/planer.htm
и https://.********.com/article127748.html там есть формулы
вычитай из одного года другой и все :)

А остальное...... смешно даж
Pcixopat
12/21/2007, 11:18:57 PM
Мне до вторника сдать всё нада , а я С++ вообще раньше не изучал!!!
Плииииз напишите мне хотя бы несколько программ!!! Заранее всем спасибо)))
do-do
12/22/2007, 1:52:17 PM
Вишь ..у тебя задачи - ну скажем в 2-3 действия.... и честно говоря не интересные... хотя есть конечно альтруисты...

Но есть проект ***** покопайся там.
Pcixopat
12/22/2007, 4:41:02 PM
СПАСИБО!!!
DELETED
12/22/2007, 10:41:01 PM
М-да. Не прочел. Подстава.

Первая задача, ладно, элементарная:CODE
int HowManyDaysInAYear ( int nYear ) {
return 365 + !( nYear % 4 ) - ( !(nYear % 100) && (nYear % 400) );
}

Вторую не понял. А что, sscanf уже отменили?

Третье: я офигеваю. Скриншот вкладывайте, бо то не задача, а полный бред.

Четвертое: Не ... людям мозг. То таких не бывает рядом с третьей. Сменить два указателя - задача???


Короче снимайте скриншот с задач. А то фигня какая-то получается.