15 / 12 / 1
Регистрация: 01.06.2011
Сообщений: 225
1

Написать программу для нахождения наибольшего по модулю элемента матрицы.

17.05.2013, 07:56. Показов 1789. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем!
Есть такая задача:
Написать программу для нахождения наибольшего по модулю элемента матрицы. Матрица вводится из файла. Поиск наибольшего элемента в каждой строке матрицы выполнить в отдельных процессах. Для передачи данных в родительский процесс использовать механизм неименованного канала (pipe).

В линукс раньше не программировал, но пытаюсь дойти сам.
Помогите понять, как это сделать, код мне не нужен. Примерное представление о процессах и передаче данных в родительский процесс, а вот понять как на практике применить понять не могу.
Подскажите, пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2013, 07:56
Ответы с готовыми решениями:

Написать программу для нахождения наибольшего элемента в двумерном массиве
Доброго времени суток! Помогите, пожалуйста, написать программу для нахождения наибольшего элемента...

Составить программу нахождения наибольшего элемента с побочной(главной) диагонали матрицы m x n
.Составить программу нахождения наибольшего элемента с побочной(главной) диагонали матрицы m x n....

Напишите программу для нахождения наибольшего элемента массива
2. Напишите программу для нахождения наибольшего элемента массива.

Программа для нахождения суммы и произведения для наибольшего и наименьшего элемента матрицы
в заданной матрице (m x n) найти сумму и произведение наибольшего и наименьшего (по абсолютной...

1
15 / 12 / 1
Регистрация: 01.06.2011
Сообщений: 225
19.05.2013, 20:51  [ТС] 2
Лучший ответ Сообщение было отмечено v1le как решение

Решение

Цитата Сообщение от v1le Посмотреть сообщение
Привет всем!
Есть такая задача:
Написать программу для нахождения наибольшего по модулю элемента матрицы. Матрица вводится из файла. Поиск наибольшего элемента в каждой строке матрицы выполнить в отдельных процессах. Для передачи данных в родительский процесс использовать механизм неименованного канала (pipe).

В линукс раньше не программировал, но пытаюсь дойти сам.
Помогите понять, как это сделать, код мне не нужен. Примерное представление о процессах и передаче данных в родительский процесс, а вот понять как на практике применить понять не могу.
Подскажите, пожалуйста.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
 
 
using namespace std;
 
 
 
int main(){
    int fd[2];
    int i,j;
    int p;
    int arr[2][2];
    FILE *file = fopen("matrix","r");
    if (!file)
        printf("NO FILE");
    for(i = 0; i < 2; i++){
        for(j = 0; j < 2; j++){
            fscanf(file, "%d", &arr[i][j]);
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
 
    if(pipe(fd) < 0) {
        printf("Pipe error!\n");
        return 1;
    }
 
    if( (p=fork()) < 0){
        printf("Fork error!\n"); return 1;
    }
 
    int max;
    int lo;
    lo = sizeof(int);
    max = arr[0][0];
 
    for(i = 0; i < 2; i++){
        for(j = 0; j < 2; j++){
            if(abs(max) < abs(arr[i][j])){
            max = arr[i][j];
            }
        }
    }
    printf("max is %d", max);
    if(p == 0){
        close(fd[0]);
        if(write(fd[1], &max, lo) != lo){
            printf("Write error!\n");
            return 1;
        }
    }
    else{
        close(fd[1]);
        if( (lo = read(fd[0],&max,lo) ) < 0){
            printf("Read error!\n");
            return 1;
        }
        if(lo)
            printf("MAX IS %d", max);
    }
    fclose(file);
    return 0;
Вот накорябал код, работает, но я не знаю как вынести так, чтобы нахождение максимума в каждой строке было отдельным процессом.

Я понимаю это дело так:
Проходит по строке, запоминаем максимум, записываем в поток и передаем родителю, и так для всех строк.
А в родительском процесс происходит чтение данных из потока и сравнение данных, самый большое число естественно будет максимумом.
Я правильно понимаю процесс или нет?)
0
19.05.2013, 20:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2013, 20:51
Помогаю со студенческими работами здесь

Нахождение наибольшего по модулю элемента и выбрасывание из исходной матрицы строчку и столбец этого элемента
В данной действительной квадратной матрице порядка n найти наибольший по модулю элемент. Получить...

Написать программу для нахождения наибольшего общего делителя двух целых чисел
В программе ввести индекс,значение которого увеличивается после каждого действия оператора.

Составить программу поиска наибольшего по модулю элемента массива, а также индекса этого элемента
Помогите написать программу и составить блок схему. Дано массив А и натуральное число n. Составить...

Найти значение наибольшего по модулю элемента матрицы
Дана действительная матрица размера 18 x n. Найти значение наибольшего по модулю элемента матрицы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru