Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
#1

работа с матрицами в файлах - C++

29.05.2010, 20:06. Просмотров 1958. Ответов 32
Метки нет (Все метки)

Люди, помогите сделать задачи, очень прошу
на языке С
Задача 1. Дан файл вещественных чисел, содержащий ненулевую часть трехдиагональной матрицы (по строкам). Создать новый файл, содержащий все элементы данной матрицы (по строкам).

Задача 2. Даны два файла вещественных чисел с именами Sa и Sb, содержащие ненулевые части верхнетреугольных матриц A и B (по строкам). Создать новый файл с именем Sc, содержащий ненулевую часть произведения A•B (по строкам). Если матрицы A и B нельзя перемножать, то оставить файл Sc пустым.
S
Задача 3. Даны два файла вещественных чисел с именами Sa и Sb, содержащие ненулевые части нижнетреугольных матриц A и B (по строкам). Создать новый файл с именем Sc, содержащий ненулевую часть произведения A•B (по строкам). Если матрицы A и B нельзя перемножать, то оставить файл Sc пустым.
Нифига не успеваю, физика, вышка, программирование =(
Очень прошу , помогите, и если можете объясните

Добавлено через 9 часов 7 минут
неужели никто не может помочь ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.05.2010, 19:50     работа с матрицами в файлах #16
Нет, я имею ввиду в самой программе... Т.е. вместо строки, например mas[i][j] = 0; ставить mas[i][j] = 0.0. Ну и во всех подобных случаях 0 заменять на 0.0
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
30.05.2010, 19:55  [ТС]     работа с матрицами в файлах #17
нифига =(

Добавлено через 21 секунду
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
68
69
70
71
72
73
74
75
#include <stdio.h>
 
int main()
{
    double **mas;
    char buff;
    int res;
    int i, j;
    
    FILE *in;
    FILE *out;
    
    if ((in = fopen("in.txt", "r")) == NULL)
        return -1;
    
    res = 1;
    
    while ((buff = fgetc(in)) != EOF)
        if (buff == '\n')
            res++;
    
    mas = (double **)malloc(res * sizeof(double *));
    
    for (i = 0; i < res; i++)
        mas[i] = (double *)malloc(res * sizeof(double));
    
    fseek(in, 0, SEEK_SET);
    
    fscanf(in, "%lf", &mas[0][0]);
    fscanf(in, "%lf", &mas[0][1]);
    
    for (i = 2; i < res; i++)
        mas[0][i] = 0.0;
    
    for (i = 1; i < res - 1; i++)
    {
        for (j = 0; j < ((i - 1 <= 0) ? 0 : (i - 1)); j++)
            mas[i][j] = 0.0;
        
        fscanf(in, "%lf", &mas[i][j++]);
        fscanf(in, "%lf", &mas[i][j++]);
        fscanf(in, "%lf", &mas[i][j++]);
        
        for ( ; j < res; j++)
            mas[i][j] = 0.0;
    }
    
    
    for (i = 0; i < res - 3; i++)
        mas[res - 1][i] = 0.0;
    
    fscanf(in, "%lf", &mas[res - 1][res - 2]);
    fscanf(in, "%lf", &mas[res - 1][res - 1]);
    
    if ((out = fopen("out.txt", "w")) == NULL)
        return -1;
    
    for (i = 0; i < res; i++)
    {
        for (j = 0; j < res; j++)
            fprintf(out, "%lf ", mas[i][j]);
        
        fprintf(out, "\n");
    }
    
    fclose(in);
    fclose(out);
    
    for (i = 0; i < res; i++)
        free(mas[i]);
    
    free(mas);
    
    return 0;
}
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.05.2010, 19:57     работа с матрицами в файлах #18
А если вывести массив на экран, а не в файл, то же самое будет? Только не забудте перед return 0; поставить getch();
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
30.05.2010, 20:04  [ТС]     работа с матрицами в файлах #19
нет, бред какой-то выводит
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.05.2010, 20:06     работа с матрицами в файлах #20
В смысле то же самое, что выводил в файл, или вообще бред? Вообще, чтобы вывести на экран, надо было заменить это

C
1
2
3
4
5
6
7
for (i = 0; i < res; i++)
    {
        for (j = 0; j < res; j++)
            fprintf(out, "%lf ", mas[i][j]);
        
        fprintf(out, "\n");
    }
на это

C
1
2
3
4
5
6
7
for (i = 0; i < res; i++)
    {
        for (j = 0; j < res; j++)
            printf("%lf ", mas[i][j]);
        
        printf("\n");
    }
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
30.05.2010, 20:09  [ТС]     работа с матрицами в файлах #21
ну да, так и делал

Добавлено через 30 секунд
почти

Добавлено через 34 секунды
во, теперб выводит то же бред , что и в файл ( с неправильным элементом)
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.05.2010, 20:10     работа с матрицами в файлах #22
Ну так и что значит "выводит бред какой-то"?

Добавлено через 46 секунд
Хм... Блин, программа-то простая, там нечему глючить...
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
30.05.2010, 20:11  [ТС]     работа с матрицами в файлах #23
о_О
а что тогда гючит ?
а может какую-нибудь библиотеку подключить или хз чё ??
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.05.2010, 20:12     работа с матрицами в файлах #24
Попробуйте Скачать откомпилированный мной экзешник и его выполнить... Он нормально отработает?
Вложения
Тип файла: rar 1.rar (4.6 Кб, 13 просмотров)
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
30.05.2010, 20:14  [ТС]     работа с матрицами в файлах #25
он не держит экран

Добавлено через 21 секунду
ну окно, открылось и закрылось
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.05.2010, 20:15     работа с матрицами в файлах #26
ну так он и не должен, я же пишу в файл
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
30.05.2010, 20:17  [ТС]     работа с матрицами в файлах #27
Код
1.000000 1.000000 0.000000 0.000000 
1.000000 1.000000 1.000000 0.000000 
0.000000 1.000000 1.000000 1.000000 
0.000000 93279594069918926000000000.000000 1.000000 1.000000
Добавлено через 12 секунд
о_О хмм
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.05.2010, 20:42     работа с матрицами в файлах #28
о_О
Яхз......
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
31.05.2010, 16:44     работа с матрицами в файлах #29
Чтобы не было мусора нужно изменить malloc на calloc, это небольшая проблемка визуал студио.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2010, 17:03     работа с матрицами в файлах
Еще ссылки по теме:
C++ Работа с квадратными матрицами
C++ Работа с двухмерными матрицами
Двумерные массивы(работа с матрицами) C++
Работа с матрицами: умножение, сумма элементов C++
Работа с текстовой информацией, одномерными массивами и матрицами. C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт CЭксперт С++
9470 / 5483 / 927
Регистрация: 25.07.2009
Сообщений: 10,506
31.05.2010, 17:03     работа с матрицами в файлах #30
Цитата Сообщение от Лестат Посмотреть сообщение
бред какой-то выводит
добавьте заголовок <stdlib.h> - malloc() в нём объявлена. А так вроде бы правильно всё (при учёте, что задачу я так и не понял ), правда, у меня оно вот, что вывело:
Код
andrew$ cat out.txt 
1.000000 2.000000 0.000000 0.000000 0.000000 
2.000000 3.000000 4.000000 0.000000 0.000000 
0.000000 3.000000 4.000000 5.000000 0.000000 
0.000000 0.000000 4.000000 5.000000 0.000000 
0.000000 0.000000 0.000000 0.000000 0.000000
Добавлено через 3 минуты
Понял, у меня в конце входного файла строка пустая.
Yandex
Объявления
31.05.2010, 17:03     работа с матрицами в файлах
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru