Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

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

Код:
// 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
Обязательно следуйте советам в комментариях!
New man вне форума   Ответить с цитированием
Старый 14.10.2016, 00:26   #5
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,833
Репутация: 5617
По умолчанию

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

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

А вообще, я очень старался и написал кучу спагетти-кода на F# с рекурсией в самых ненужных местах.
New man вне форума   Ответить с цитированием
Старый 16.10.2016, 07:06   #7
newerow1989
Я самый любопытный
Профессионал
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Адрес: RU, Алтайский край, Красногорский р-н, с. Балыкса, ул. Центральная Сообщений: 7,541 Репутация: 37104
Сообщений: 1,767
Репутация: 1655

skype: newerow1989
По умолчанию

Код:
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.narod.ru
[Паскаль] [Delphi]
newerow1989 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование в 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 13:40


17:05.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.