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

Функции работы с патоками - C++

Восстановить пароль Регистрация
 
Олечка =)
 Аватар для Олечка =)
0 / 0 / 0
Регистрация: 04.01.2011
Сообщений: 4
04.01.2011, 22:36     Функции работы с патоками #1
расположить элементы каждого рядка матрицы A(N,M) по убыванию
1 программа. Заполнить массив начальными данными и записать их в файл
2 программа. Считывать данные из файла и обрабатывать их
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2011, 22:36     Функции работы с патоками
Посмотрите здесь:

C++ функции работы со стеком
C++ Функции работы с патоками (на языке С)
C++ Функции для работы с массивами
Пример работы функции get_toke() C++
C++ функции работы с памятью
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
04.01.2011, 22:43     Функции работы с патоками #2
Цитата Сообщение от Олечка =) Посмотреть сообщение
расположить элементы каждого рядка матрицы A(N,M) по убыванию
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
#include <iostream>
#include <algorithm>
 
bool pred(int a, int b)
{
    return a > b;
}
 
int main()
{
    const size_t r = 3,
    c = 3;
    int matr[r][c] =
    {
        {3, 5, 1},
        {1, 8, 3},
        {6, 1, 2}
    };
 
    for(size_t i = 0; i < r; ++i)
    {
        for(size_t j = 0; j < c; ++j)
            std::sort(matr[i], matr[i] + c, pred);
    }
 
    for(size_t i = 0; i < r; ++i)
    {
        for(size_t j = 0; j < c; ++j)
            std::cout << matr[i][j] << ' ';
            
        std::cout << '\n';
    }
 
    return 0;
}
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
04.01.2011, 23:01     Функции работы с патоками #3
Цитата Сообщение от Олечка =) Посмотреть сообщение
расположить элементы каждого рядка матрицы A(N,M) по убыванию
1 программа. Заполнить массив начальными данными и записать их в файл
2 программа. Считывать данные из файла и обрабатывать их
это все должно быть в одной программе?
расположить элементы каждого рядка матрицы A(N,M) по убыванию - готово
реализовано на Visual C++ 2008

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
76
77
78
79
// 1212.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
 
using namespace System;
 
 
int main()
{
setlocale(LC_ALL,"Russian");
int **mas = NULL;
int cows/*строка*/ = 0, rows /*столбец*/ = 0;
int b;
 
 
cout<<"Введите размер массива (строка, столбец): ";
cin >> cows >> rows;
mas = new int *[cows];
for (int i = 0; i < cows; i++)
{
    mas[i] = new int [rows];
}
 
cout<<"Заполните массив числами: "<<endl;
for (int i=0;i<cows;i++)
{
for(int j = 0; j < rows; j++)
{
cin>>mas[i][j];
}
}
 
cout<<"Массив имеет вид : "<<endl;
for (int i=0;i<cows;i++)
{
for(int j = 0; j < rows; j++)
{
cout<<mas[i][j]<<" ";
}
cout<<endl;
}
 
//сортировка строк массива по убыванию
 
for (int i = 0; i < cows; i++)
{
   for (int j = 0; j < rows; j++)
   {
       if (mas[i][j] < mas[i][j+1]) 
    { 
        b = mas[i][j];
        mas[i][j] = mas[i][j+1];
        mas[i][j+1] = b;
       }
   }
}
 
cout<<"Массив после сортировки имеет вид: "<<endl;
for (int i=0;i<cows;i++)
{
for(int j = 0; j < rows; j++)
{
cout<<mas[i][j]<<" ";
}
cout<<endl;
}
 
for (int i = 0; i < cows; i++)
{
    delete mas[i];
}
delete[] mas;
getch();
return 0;
}
Добавлено через 7 минут
Цитата Сообщение от Олечка =) Посмотреть сообщение
1 программа. Заполнить массив начальными данными и записать их в файл

Проект был реализован на C++ Builder6:
ниже приведен код записи в файл 2-х мерного массива:


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
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <fstream.h>
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
int main()
{
//---Заполняем массив случайными числами---
int in[5][2]; // для заполнения числами
randomize();
for (int i=0; i<4; i++)
 {
   for (int j=0; j<1; j++) 
    {
       in[i][j] = random(50);
     }
 }
//---Запись в файл ---
ofstream infile("C:\\1.txt");
infile.is_open();
for (int i=0; i<4; i++)
 {
  for (int j=0; j < 1; j++)
   {
     infile << in[i][j]<< " ";
  {
    infile << endl;
  }
infile.close();
getch();
return 0;
}
Олечка =)
 Аватар для Олечка =)
0 / 0 / 0
Регистрация: 04.01.2011
Сообщений: 4
04.01.2011, 23:05  [ТС]     Функции работы с патоками #4
А как это всё перевести на С?
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
04.01.2011, 23:09     Функции работы с патоками #5
Цитата Сообщение от Олечка =) Посмотреть сообщение
А как это всё перевести на С?
такие вещи надо сразу писать!
ожидай...
Олечка =)
 Аватар для Олечка =)
0 / 0 / 0
Регистрация: 04.01.2011
Сообщений: 4
04.01.2011, 23:21  [ТС]     Функции работы с патоками #6
Извиняюсь....не подумала =(
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
05.01.2011, 00:39     Функции работы с патоками #7
нет вариантов как написать на Си!
knofl
 Аватар для knofl
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
15.01.2011, 14:07     Функции работы с патоками #8
Kenwood2010, Почему нет? Ведь можно не использовать потоки... Будет выглядеть чуть по-другому, но это без проблем можно сделать! File* Рулит! и printf() тоже=)
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
15.01.2011, 14:12     Функции работы с патоками #9
knofl, в каком месте они рулят? - УГ
потоки круче
silent_1991
15.01.2011, 14:19
  #10

Не по теме:

Цитата Сообщение от sandye51 Посмотреть сообщение
в каком месте они рулят?
Называется Си)))

sandye51
15.01.2011, 14:38
  #11

Не по теме:

silent_1991, ну да, только там)

silent_1991
15.01.2011, 14:40
  #12

Не по теме:

sandye51,

Цитата Сообщение от Олечка =) Посмотреть сообщение
А как это всё перевести на С?

sandye51
15.01.2011, 14:46
  #13

Не по теме:

silent_1991, свое мнение я не привязывал к конкретному языку. А просто что круче, потоки или хунта из Си)

silent_1991
15.01.2011, 14:49
  #14

Не по теме:

sandye51, зря. Надо бы привязывать. Ибо в Си одно, в плюсах другое. Каждому своё.))

knofl
 Аватар для knofl
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
18.01.2011, 02:29     Функции работы с патоками #15
Ну чуваки если Вы с printf() не работали никогда, то Вам и не понять почему н рулит, а я вот работал, бывает намного удобнее всяких там cin и getline.
К тому же с помощью File можно считывать из файла побайтно - в определённых случаях это очень удобно и пригождается.
silent_1991
18.01.2011, 05:21
  #16

Не по теме:

knofl, делать преждевременные выводы - последнее дело. Я почти два года проработал исключительно на чистом Си, так что вот этого не надо...

taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.01.2011, 05:28     Функции работы с патоками #17
С какого перепугу функции работают с патокой? И когда у неё появилось множественное число?
knofl
 Аватар для knofl
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
18.01.2011, 12:31     Функции работы с патоками #18
sandye51,
Цитата Сообщение от sandye51 Посмотреть сообщение
тебе ли учить тут?
И не тебе. Я работал с чистым Си не меньше 2,5 лет! Хотя писал в ИДЕ предназначенной для c++.

Добавлено через 47 секунд
silent_1991, Извините, не внимательно прочитал Ваши посты, Вы тут не при чём.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2011, 15:58     Функции работы с патоками
Еще ссылки по теме:

C++ Найти результат работы функции
C++ Функции работы с потоками
C++ Принцип работы функции

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
18.01.2011, 15:58     Функции работы с патоками #19
2ALL: Друзья, флудить прекращаем!

Олечка =), вот Вам аж в трёх файлах
defaults.h
C
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef _DEFAULTS_H_
#define _DEFAULTS_H_ 1
 
#define UNSORTED_FILE_NAME "unsorted.txt"
#define SORTED_FILE_NAME "sorted.txt"
#define ROWS 5
#define COLUMNS 10
#define MAX_VALUE 99
#define MIN_VALUE 0
#define WIDTH 3
 
#endif /* _DEFAULTS_H_ */
make_unsorted.c
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "defaults.h"
 
int main(void){
    int i, j;
    FILE * f;
    
    if ( ( f = fopen(UNSORTED_FILE_NAME, "w") ) == NULL ){
        perror("fopen");
        exit(1);
    }
    
    srand(time(NULL));
    for ( i = 0; i < ROWS; ++i ){
        for ( j = 0; j < COLUMNS; ++j ){
            if ( fprintf(f, "%*d", WIDTH, rand() % ( MAX_VALUE - MIN_VALUE + 1 ) + MIN_VALUE) < 0 ){
                perror("fprintf");
                if ( fclose(f) )
                    perror("fclose");
                exit(1);
            }
        }
        if ( fprintf(f, "\n") < 0 ){
            perror("fprintf");
            if ( fclose(f) )
                perror("fclose");
            exit(1);
        }
    }
    
    fprintf(stderr, "Done.\n");
    exit(fclose(f));
}
make_sorted.c
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
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <stdio.h>
#include <stdlib.h>
#include "defaults.h"
 
int desc_cmp(const void * a, const void * b){
    return *(int*)b - *(int*)a;
}
 
int main(void){
    int ** matr, i, j;
    FILE * f;
    
    if ( ( matr = (int**)malloc(sizeof(int*) * ROWS) ) == NULL ){
        perror("malloc");
        exit(1);
    }
    for ( i = 0; i < ROWS; ++i ){
        if ( ( matr[i] = (int*)malloc(sizeof(int) * COLUMNS) ) == NULL ){
            perror("malloc");
            exit(1);
        }
    }
    
    if ( ( f = fopen(UNSORTED_FILE_NAME, "r") ) == NULL ){
        perror(UNSORTED_FILE_NAME);
        for ( i = 0; i < ROWS; ++i )
            free(matr[i]);
        free(matr);
        exit(1);
    }
    
    for ( i = 0; i < ROWS; ++i ){
        for ( j = 0; j < COLUMNS; ++j ){
            if ( fscanf(f, "%d", &matr[i][j]) != 1 ){
                perror("fscanf");
                for ( i = 0; i < ROWS; ++i )
                    free(matr[i]);
                free(matr);
                if ( fclose(f) )
                    perror("fclose");
                exit(1);
            }
        }
    }
    
    if ( fclose(f) )
        perror("fclose");
    
    for ( i = 0; i < ROWS; ++i )
        qsort(matr[i], COLUMNS, sizeof(int), desc_cmp);
    
    if ( ( f = fopen(SORTED_FILE_NAME, "w") ) == NULL ){
        perror(SORTED_FILE_NAME);
        for ( i = 0; i < ROWS; ++i )
            free(matr[i]);
        free(matr);
        exit(1);
    }
    
    for ( i = 0; i < ROWS; ++i ){
        for ( j = 0; j < COLUMNS; ++j ){
            if ( fprintf(f, "%*d", WIDTH, matr[i][j]) < 0 ){
                perror("fprintf");
                if ( fclose(f) )
                    perror("fclose");
                for ( i = 0; i < ROWS; ++i )
                    free(matr[i]);
                free(matr);
                exit(1);
            }
        }
        if ( fprintf(f, "\n") < 0 ){
            perror("fprintf");
            if ( fclose(f) )
                perror("fclose");
            for ( i = 0; i < ROWS; ++i )
                free(matr[i]);
            free(matr);
            exit(1);
        }
    }
    
    fprintf(stderr, "Done.\n");
    for ( i = 0; i < ROWS; ++i )
        free(matr[i]);
    free(matr);
    exit(fclose(f));
}
Yandex
Объявления
18.01.2011, 15:58     Функции работы с патоками
Ответ Создать тему
Опции темы

Текущее время: 18:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru