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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2016, 18:07   #1
maxwelln1
Пользователь
 
Регистрация: 07.10.2016
Сообщений: 23
По умолчанию двумерный массив

Дана квадратная матрица порядка n(n=5). Получить элементы вектора x, равные сумме чётных элементов каждой строки, если среди элементов матрицы нет отрицательных элементов, иначе каждый элемент вектора x равен произведению элементов столбца. С комментариями, пожалуйста.
maxwelln1 вне форума Ответить с цитированием
Старый 12.10.2016, 22:38   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Цитата:
Сообщение от maxwelln1 Посмотреть сообщение
С комментариями, пожалуйста.
Вам просто код программы или лучше проект целиком прикрепить, чтобы вы его руками не создавали, и свое время на такую чепуху не тратили? Могу еще и откомпилировать, чтобы был готовый exe-файл, и не пришлось компилировать самостоятельно.
Arigato вне форума Ответить с цитированием
Старый 12.10.2016, 23:09   #3
maxwelln1
Пользователь
 
Регистрация: 07.10.2016
Сообщений: 23
По умолчанию

код
maxwelln1 вне форума Ответить с цитированием
Старый 13.10.2016, 18:42   #4
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
Радость

Что только не сделаешь, когда вежливо просят...

Код:
// Learn more about F# at http://fsharp.org
// See the 'F# Tutorial' project for more help.
 
let n = 5

let get_matrix =
    let rec in_row acc res =
        if acc>=n then
            res
        else
            in_row (acc+1) ((System.Console.ReadLine()|>int)::res)
    List.map (fun x -> in_row 0 []) [1..n];

let check matrix = not( List.exists (fun x-> List.exists (fun y->y<0) x) matrix)
 
let calc matrix =
    let rec s row acc=
        match row with
            | []->acc
            | head::tail->
                        if head%2=0 then 
                            s tail acc+head
                        else
                            s tail acc
    let p row = List.reduce (fun x a -> a*x)row
    List.map (if check matrix then (fun x -> s x 0) else p) matrix
            
[<EntryPoint>]
let main argv = 
    printfn "%A" (calc get_matrix)
    0 // return an integer exit code
Обязательно следуйте советам в комментариях!
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 13.10.2016, 23:26   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Что только не сделаешь, когда вежливо просят...
Вы уверены, что это программа на языке Паскаль?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.10.2016, 23:54   #6
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы уверены, что это программа на языке Паскаль?!
Ну зачем интригу убирать

А вообще, я очень старался и написал кучу спагетти-кода на F# с рекурсией в самых ненужных местах.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 16.10.2016, 06:06   #7
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
const n=5;
var i,j:integer;
    p:array[1..n,1..n] of integer;
    x:array[1..n] of integer;
    otr:boolean;
begin
   Randomize;
   otr:=false;
   For i:=1 to n do
   begin
      For j:=1 to n do
      begin
         p[i,j]:=-1+Random(21);
         Write(p[i,j]:3,'  ');
         If p[i,j]<0 then
            otr:=true;
      end;
      Writeln;
   end;
   Writeln;
   If otr then
      For j:=1 to n do
      begin
         x[j]:=1;
         For i:=1 to n do
            x[j]:=x[j]*p[i,j];
      end else
      For i:=1 to n do
      begin
         x[i]:=0;
         For j:=1 to n do
            If p[i,j] mod 2=0 then
               x[i]:=x[i]+p[i,j];
      end;
   For i:=1 to n do
      Write(x[i]:3,'  ');
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование в VBA: двумерный массив M на N, нужно создать новый одномерный массив TheAnnihilyator Помощь студентам 1 04.06.2014 09:16
Java: Дан двумерный массив чисел А размером 6х6 и одномерный массив Х из 6-ти чисел. Заменить первые три строки массива A vikysha55 Помощь студентам 1 16.04.2014 10:50
Двумерный массив развернуть в одномерный массив по строкам[QBASIC] TrueStyle777 Помощь студентам 3 29.05.2013 21:56
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40