Closed TopicStart new topicStart Poll

Страницы: (2) 1 2 
-=Mafia=-
дата: [ i ]
  • *
  • Интересующийся
  • Репутация: 8
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаЖенат
Дана целочисленная матрица. Определить:
1) Сумму элементов в тех строках, которые содержат хотябы один отрицательный элемент;
2) Номер столбца, в котором стоит минимальный элемент
do-do
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 349
  • Статус: Поболтаем?
  • Member OfflineМужчинаСвободен
wink.gif Тупая блок схема подойдет ?

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

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

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

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



Думаю в код такое перегнать легко

Это сообщение отредактировал do-do - 17-08-2007 - 11:23
ole256
дата: [ i ]
  • *
  • Любитель
  • Репутация: 71
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
Я бы слегка другой набор функций написал:

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

Кстати, в функции надо передавать и саму матрицу с ее размерностью, в С++ свойства length у массива нет.
do-do
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 349
  • Статус: Поболтаем?
  • Member OfflineМужчинаСвободен
глобально можно задать размер матрицы
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
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 );
}



Это сообщение отредактировал JeyLo - 17-08-2007 - 16:09
do-do
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 349
  • Статус: Поболтаем?
  • Member OfflineМужчинаСвободен
педагог бля :)
Мне тупые студенты надоели ужо - пущай хоть кодил бы сам.
Экзамен, компьютерный класс, интернет, раздал билеты, читаю книгу, народ ломится в сеть и ищет ответы.
Подходят, на 5 листов ответ, мелким почерком. Беру бумажку, откладываю в сторону и спрашиваю НУ
Ничего :)
Пока переписывал, даж в смысл не вник

Это сообщение отредактировал do-do - 17-08-2007 - 20:47
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
Я первый вариант с забавной ошибкой запостил. Потом подумал, и перепостил. Таки преподаватель поймет, что не сам писал. :) Ибо кто сам писал, на НУ ответит. ?)
do-do
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 349
  • Статус: Поболтаем?
  • Member OfflineМужчинаСвободен
Ответит :)
Кстати есть вменяемые люди, обычно работающие в фирмах по профилю обучения, проблему руками знают. У таких не грех и поучиться всяким тонкостям и хитростям.
Помню, скоро экзамен - подходит студентка - говорит Вы нам Дайте вопросы и Ответы, а мы их выучим :)
Спрашиваю, а зачем?
Не понимает.
Говорю, ответы я и так знаю (ну коли билеты готовлю :) ), так что мне не нужны они, мне важно, что вы понимаете :)

Самое, что удивительное, народ бабки (и не малые) платит за учебу, на лекции не ходит, хочет на шару проехать.... типа видать платят, шоб от армии откосить
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
Хех.
Может -=Mafia=- гуманитарий. Нафиг ей программа на С++? :)
do-do
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 349
  • Статус: Поболтаем?
  • Member OfflineМужчинаСвободен
А нафик мне был Марксизм-Ленинизм ? Но вишь ли широту взглядов надо все ж РАЗВИВАТЬ, затрачивать усилия. Если был курс по С/C++ худо бедно чел. слышал что такое main - но если такие элементарные задачи не смочь сделать, так ведь логическое мышление и гуманитарию нужно.

Еще вспомни как люди дипломы пишут...copy paste. Листал я такое, куски даже не сшиты меж собой, так лежат - непонятными (или непонЯтыми) кусками
ole256
дата: [ i ]
  • *
  • Любитель
  • Репутация: 71
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
-=Mafia=- , только когда программу будете писать, не забудьте сделать, чтобы размерность матрицы задавалась с клавиатуры: Функции printf/scanf или потоки cout/cin.
do-do
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 349
  • Статус: Поболтаем?
  • Member OfflineМужчинаСвободен
в учебных целях так не морочатся, обычно (!) уже матрица готова :) и лежит в текстовом формате рядом с исполняемым файлом
Препод ее пальцами меняет и глядит шо получается.
Так, что надо файловые операции использовать :) Что ж предлагаю доброму самаритянину JeyLo и еще раз помочь гуманитарию.

Дан текстовый файл, матрица записана в естественном виде, по строкам, число столбцов и строк больше 1
Написать функцию считывающую матрицу в массив и сразу же подсчитывающую размерность матрицы

Это сообщение отредактировал do-do - 18-08-2007 - 09:28
Shaiya
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 441
  • Статус: Давай пообщаемся!
  • Member OfflineЖенщинаСвободна
QUOTE (do-do @ 18.08.2007 - время: 09:27)
Дан текстовый файл, матрица записана в естественном виде, по строкам, число столбцов и строк больше 1
Написать функцию считывающую матрицу в массив и сразу же подсчитывающую размерность матрицы

Наш препод по ЛО САПР и Оптимизации в САПР, в рамках которых мы и изучали С++, именно так и делал - практически все задания лежали во внешних файлах... Господи, как же давно это было... wacko.gif я почти ничего не помню из синтаксиса... blink.gif
-=Mafia=-
дата: [ i ]
  • *
  • Интересующийся
  • Репутация: 8
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаЖенат
Спасибо, всем за помощь
Pcixopat
дата: [ i ]
  • *
  • Новичок
  • Репутация: нет
  • Статус: Давай пообщаемся!
  • Member OfflineСвободен
ПОМОГИТЕ НАПИСАТЬ ПРОГУ НА С++ ПЛИИИЗ!!!
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
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 349
  • Статус: Поболтаем?
  • Member OfflineМужчинаСвободен
По первой задаче, загляни на http://www..********.ru/docs/analis/planer.htm
и http://.********.com/article127748.html там есть формулы
вычитай из одного года другой и все :)

А остальное...... смешно даж

Это сообщение отредактировал JeyLo - 22-12-2007 - 20:26
Pcixopat
дата: [ i ]
  • *
  • Новичок
  • Репутация: нет
  • Статус: Давай пообщаемся!
  • Member OfflineСвободен
Мне до вторника сдать всё нада , а я С++ вообще раньше не изучал!!!
Плииииз напишите мне хотя бы несколько программ!!! Заранее всем спасибо)))
do-do
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 349
  • Статус: Поболтаем?
  • Member OfflineМужчинаСвободен
Вишь ..у тебя задачи - ну скажем в 2-3 действия.... и честно говоря не интересные... хотя есть конечно альтруисты...

Но есть проект ***** покопайся там.

Это сообщение отредактировал JeyLo - 22-12-2007 - 20:25
Pcixopat
дата: [ i ]
  • *
  • Новичок
  • Репутация: нет
  • Статус: Давай пообщаемся!
  • Member OfflineСвободен
СПАСИБО!!!
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
М-да. Не прочел. Подстава.

Первая задача, ладно, элементарная:
CODE

int HowManyDaysInAYear ( int nYear ) {
return 365 + !( nYear % 4 ) - ( !(nYear % 100) && (nYear % 400) );
}


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

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

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


Короче снимайте скриншот с задач. А то фигня какая-то получается.
do-do
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 349
  • Статус: Поболтаем?
  • Member OfflineМужчинаСвободен
QUOTE (JeyLo @ 22.12.2007 - время: 19:41)


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

Четвертое: Не ... людям мозг.

3) Элементарное приближение аналитической функции рядом
Думаю критерий сходимости (сколь членов в ряду) модуль разности n и n+1 предела суммирования. Функции секанс и косеканс как я понимаю.... Точные значения эт видать табличные или встроенные функции (которые то же приближение :) )

4) Мозг нужен шоб спросить :)
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
do-do - умищще! %) Склоняюсь к осознанию своей глупости.

Как-то пропало желание чего-то писать, если человеки даже таск понять и задать не могут.
Pcixopat
дата: [ i ]
  • *
  • Новичок
  • Репутация: нет
  • Статус: Давай пообщаемся!
  • Member OfflineСвободен
Напишите мне плиз полностью программу!!! От начала до конца!!!
Я могу заплатить за каждую прогу 100 рублей)))
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
Одну???
Pcixopat
дата: [ i ]
  • *
  • Новичок
  • Репутация: нет
  • Статус: Давай пообщаемся!
  • Member OfflineСвободен
Сколько сможешь, желательно все))) Если что, пиши мне на мыло matweika2007@rambler.ru
Обо всём договоримся
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)

Страницы: (2) 1 2

Closed TopicStart new topicStart Poll0


Рекомендуем почитать также топики:

Core 2 Duo E6750

Не работает микрофон.

все о сетях, сетевом оборудовании...

Кабель VS Инфакрасник VS Блютус.

В тылу врага 2



>