Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        C#
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Одна страница
Модераторы: paradise, KMA
  

Kalmar


Удален

Hola!!
Всех с праздниками!! И все самого наилучщего всем!!
Помагите, пожалуйста, решить задачи по С#. Это очень важно и срочно. Please!!!!!!
1)
  Написать функцию, которая в двумерном целочисленном массиве размерностью m*n меняет местами самый правый из столбцов, в котором все элементы не превышают 1 с самым левым из столбцов, в котором таких элементов нет.
Предполфгается, что такие столбцы в матрице заведомо есть.
Процедура должна возвращать в главную функцию номера этих столбцов.
Используя эту функцию, написать программу, преобразующую таким образом два массива 70*80. Размерности массивов задаются именными константами.

2)
 Найти функцию, определяющую сумму максимальных элементов каждой строки вещественной матрицы размерностью m*n.
С помощью этой функции определить указанную величину для двух матриц размерности 7*10.
Размерности массивов задаются именованными константами.

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 8 янв. 2006 18:56 | IP
bekas


Долгожитель

/*

 Могу предложить решение на чистом C (я просто не помню синтаксис C#)
 Думаю, вы без проблем переложите это на C#

 Предполагается, что в функцию передаются параметрами размерность матриц:
 W - ширина матрицы, H - высота матрицы

 Для тестирования заведены небольшие матрицы. Решение по столбцам основывается
 на предположении, что такие столбцы в матрице заведомо есть. Если их нет,
 алгоритм неработоспособен

*/
#include "stdafx.h"

#define W 3
#define H 4

long a[W * H] =
{
 1, 2, -1,
 1, 3, -5,
 1, 4,  0,
 1, 5,  1
};

double d[W * H] =
{
  1.0,  2.0, -1.0,
  1.0,  3.0,  5.0,
  1.0, -4.0,  0.0,
 -2.0, -5.0, -1.0
};

// Предполагается, что надо суммировать только по одному максимальному
// элементу из строки, то есть если их несколько в строке, то берется
// только один
double Summa(double *array, long w, long h)
{
 double s, r;
 long  i, j;

 s = 0.0;
 for(i = 0; i < h; ++i)
 {
   for(j = 0, r = *array; j < w; ++j, ++array)
   {
     if(r < *array)
       r = *array;
   }
   s += r;
 }
 return(s);
}

void LeftRight(long *left, long *right, long *array, long w, long h)
{
 long *a1, *a0, *a2, i, tmp;

 // Поиск самого левого столбца
 for(a0 = array;  ;  ++a0)
 {
   for(i = 0, a2 = a0; i < h && *a2 > 1; a2 += w, ++i)
     ;
   if(i == h)
     break;
 }
 *left = a0 - array;

 // Поиск самого правого столбца
 for(a1 = array + w;  ; )
 {
   for(i = 0, a2 = --a1; i < h && *a2 <= 1; a2 += w, ++i)
     ;
   if(i == h)
     break;
 }
 *right = a1 - array;

 // Обмен столбцов
 for(i = 0; i < h; ++i, a0 += w, a1 += w)
 {
   tmp = *a0;
   *a0 = *a1;
   *a1 = tmp;
 }
}

int main(int argc, char* argv[])
{
 long left, right, i, j, *a0;

 LeftRight(&left, &right, a, W, H);
printf("left=%d right=%d\n", left, right);
 for(i = 0, a0 = a; i < H; ++i)
 {
   for(j = 0; j < W; ++j, ++a0)
   {
     printf("%5d ", *a0);
   }
   printf("\n" );
 }

 printf("Summa=%g\n", Summa(d, W, H));

return 0;
}



(Сообщение отредактировал bekas 8 янв. 2006 22:44)

Всего сообщений: 379 | Присоединился: январь 2006 | Отправлено: 8 янв. 2006 22:37 | IP
KMA



Долгожитель

Тут дело в том, что сложновато будет переводить, насколько я знаю С# не поддерживает указателей, он практически сходен с Java в этом отношении.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 11 янв. 2006 22:37 | IP
Guest



Новичок

Я наверно не очень вовремя влезаю...
Кто-нибудь знает как создавать скины для своих программ на C#? Я слышала про компаненту skincrafter. Никто не сталкивался? Если кто-то знает альтернативные способы, то расскажите пожалуйста!
Заранее благодарна!

Lintra

Всего сообщений: Нет | Присоединился: Never | Отправлено: 15 фев. 2006 22:02 | IP

Отправка ответа:
Имя пользователя   Вы зарегистрировались?
Пароль   Забыли пароль?
Сообщение

Использование HTML запрещено

Использование IkonCode разрешено

Смайлики разрешены

Опции отправки

Добавить подпись?
Получать ответы по e-mail?
Разрешить смайлики в этом сообщении?
Просмотреть сообщение перед отправкой? Да   Нет
 

Переход к теме
<< Назад Вперед >>
Одна страница

Форум работает на скрипте © Ikonboard.com