Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2016, 17:58   #1
Slipknosha
Новичок
Джуниор
 
Регистрация: 06.06.2016
Сообщений: 3
Восклицание Массивы в С#, помогите пожалуйста !

Всем привет, мне тут задали 2 задачки сделать, так вот у меня не сильно получается..
Они вроде бы и простейшие, но все же:
Нужно построить алгоритм(блок схему) и код
первая задача:
а)одномерный массив из N элементов целого типа в диапазоне [-1;36];
б)создать новый массив, и переместить в него последние 4 элемента из первого массива
в) вычислить сумму элементов получившегося массива
г)вывести на экран 1 массив, 2 массив и значение суммы
вот мой говнокод:

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
    class Program
    {
        static void CALL_THE_DOCTOR(int[] Arr)
        {
            foreach (int m in Arr)
            {
                Console.Write("{0}\t", m);
            }
        } 

        static void Main(string[] args)
        {
            try
            {
                Console.Write("Введите размерность массива -> ");
                k:
                int N = Convert.ToInt32(Console.ReadLine());
                if (N >= 5)
                {
                    int[] TARDIS = new int[N];
                    Random rand = new Random();
                    for (int i = 0; i < N; i++)
                    {
                        TARDIS[i] = rand.Next(-1, 36);
                    }
                    Console.WriteLine("Исходный массив:");
                    CALL_THE_DOCTOR(TARDIS);
                    Console.WriteLine();
                    int[] WHO = new int[N];
                    Array.Copy(TARDIS, N - 4, WHO, 0, 4);
                    Console.WriteLine("Массив, который содержит последние 4 элемента пер-вого:");
                    CALL_THE_DOCTOR(WHO);
                    Console.WriteLine();
                    int sum = 0;
                    for (int i = 0; i < 4; i++)
                    {
                        sum += WHO[i];
                    }
                    Console.WriteLine("Значение суммы = {0}", sum);
                }
                else
                {
                    Console.Write("Введите число больше или равно пяти -> ");
                    goto k;
                }
            }
            catch (Exception E)
            {
Console.WriteLine(E.Message);
            }
            Console.ReadKey();
}
}
}
а вот вторая задачка, она посложнее будет, ее то я вообще не понял(
а) матрицу размерностью N на M из случайных элементов дейсвительного типа , выведенных с точностью до десятых , в диапазоне [ -80, 30] ;
б)транспонировать начальную матрицу
в)найти минимальный элемент главной диагонали
г)вывести на экран начальную матрицу, траспонированую, и минимальный элемент
вот код, который не правильный:

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Program
{
    class Matrix
    {
        static void FILLING(int[,] Arr, int x, int y)
        {
            Random rnd = new Random();
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    Arr[i, j] = rnd.Next(-80, 30);
                    Console.Write(Arr[i, j] + " \t ");
                    if (j == y - 1)
                    {
                        Console.WriteLine();
                    }
                }
            }
        }
        static void TRANSPOSE(int[,] transArr, int[,] Arr, int x, int y)
        {
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    transArr[i, j] = Arr[j, i];
                    Console.Write(transArr[i, j] + " \t ");
                    if (j == y - 1)
                    {
                        Console.WriteLine();
                    }
                }
            }
        }
        static void minDIAGONAL(int[,] Arr, int x, int y)
        {
            int min = Arr[0, 0];
            for (int i = 0; i < x && i < y; i++)
            {
                if (min > Arr[i, i])
                    min = Arr[i, i];
            }
            Console.WriteLine(min);
        }
        static void Main()
        {
            try
            {
                Console.WriteLine("Введите количество N x M элементов матрицы: ");
Console.Write("N = ");
                int N = Convert.ToInt32(Console.ReadLine());
                Console.Write("M = ");
                int M = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine();
                Console.WriteLine("Исходная матрица: ");
                Console.WriteLine();
                int[,] Arr = new int[N, M];
                int[,] transArr = new int[M, N];
                FILLING(Arr, N, M);
                Console.WriteLine();
                Console.WriteLine("Транспонированная матрица: ");
                Console.WriteLine();
                TRANSPOSE(transArr, Arr, N, M);
                Console.WriteLine();
                Console.WriteLine("Минимальный элемент главной диагонали:");
                Console.WriteLine();
                minDIAGONAL(transArr, N, M);
                Console.WriteLine();
            }
            catch (Exception E)
            {
                Console.WriteLine(E.Message);
            }
            Console.ReadLine();
        }
    }
}
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 06.06.2016 в 18:09.
Slipknosha вне форума Ответить с цитированием
Старый 06.06.2016, 18:09   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В чем именно проблема?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.06.2016, 18:16   #3
Slipknosha
Новичок
Джуниор
 
Регистрация: 06.06.2016
Сообщений: 3
По умолчанию

в последнем коде, у меня же там не сказано, что матрица должна быть квадратной, а любой, и я не знаю как сделать, чтобы транспонировалась матрица любой размерности и искался минимальный элемент главной диагонали

и я не знаю как под свои коды сделать блок схемы)

Последний раз редактировалось Alex11223; 06.06.2016 в 18:33.
Slipknosha вне форума Ответить с цитированием
Старый 06.06.2016, 18:24   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

По первой задаче.

Поправьте:

int[] WHO = new int[4];


ura_111 вне форума Ответить с цитированием
Старый 06.06.2016, 18:32   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А разве в условии первого задания где-то упомянут Doctor Who?oO
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.06.2016, 18:43   #6
Slipknosha
Новичок
Джуниор
 
Регистрация: 06.06.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А разве в условии первого задания где-то упомянут Doctor Who?oO
да то я раньше пересмотрел его, и так назвал методы и переменные)
Slipknosha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите пожалуйста ! думерные массивы Voishev Паскаль, Turbo Pascal, PascalABC.NET 4 02.04.2015 20:23
Пожалуйста помогите с задачкой на одномерные массивы на СИ Роман64 Помощь студентам 2 01.12.2013 18:11
Массивы. Помогите пожалуйста с решением Anita_i Общие вопросы Delphi 7 23.05.2008 20:34