Помогите написать программу

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

Присылай свой вариант кода.

Будьте добры, окажите помощь девушке)

иа?

c++, http://programmersclub.ru/34/
это операции с файлами(статья старая)

в массив сум пишем последние 5 элементов

// в int once_string[5]; 
int two_string[5];

// первые 10

int once_string[5]; 
int two_string[5];

int sum[5];
int summ;
for(index = 0; index <= 4; index++)
{
    summ = sum[i] + summ;
};

int once_string[5]; 
int two_string[5];

Было бы очень любопытно посмотреть программу на перле для решения этой задачи. Ты, хуй, окажи помощь девушке!

Коллеги, давайте соблюдать речевой этикет. Это всё-таки образовательный ресурс, а не порно-сайт 18+.

ваенвкпвап, бредятину написал, за исключением ссылки ((

Елена, задачка была бы совершенно тривиальной, если бы не требование использовать в последней строке последние числа из файла.

Я бы посоветовал считывать числа из файла в буферный массив по 5 штук. При заполнении буфера — копировать его в строку матрицы (первую или вторую). В этом случае, в буферном массиве всегда будут 5 последних считанных чисел. Когда из файла будут прочтены все числа, содержимое буферного массива можно скопировать в последнюю строку матрицы. Ещё надо продумать случай, когда в файле меньше 15 чисел (на всякий случай).

можете помочь мне объяснить зачем сдесь http://code-live.ru/post/cpp-functions/ команда return true и return false (в самом последнем коде урока). Пишите ответ пожалуйста сюда: saharok.m@yandex.ua

Если я правильно понял, то матрица должна быть 3х5. В принципе, размеры матрицы — константы, и их можно изменить.
Предварительно добавив проверку на возможность инициализации всей матрицы, потому что в файле может быть меньше цифр чем значений в матрице.
Елена перед запуском создай текстовый файл и пропиши там не менее 15 чисел. Это один из вариантов, код вот...
Кстати Череп посмотри код по этой ссылке http://code-live.ru/forum/cpp/330/ , подскажи что можно сделать.

#include <iostream>
#include <fstream>
#include <iomanip>

const int LINE = 3;
const int COLUMN = 5;

int main()
{
    using namespace std;
    ifstream fin;
    fin.open("alf.txt");
    if (!fin.is_open()){
        cout << "Couldn't open the file!\n"
            "Sorry, program terminating.\n";
        exit(EXIT_FAILURE);
    }
    int c = 0;  // счетчик, кол-во цифр в файле
    double num; // для присваивания цифр из файла
    do{ 
        fin >> num;
        ++c;    // считаем кол-во цифр в файле
    }while (fin.good());

    fin.clear();
    fin.close();
    double* arr = new double[c];    // выделяем массив под кол-во элементов
    fin.open("alf.txt");
    if (!fin.is_open()){
        cout << "Couldn't open the file!\n"
            "Sorry, program terminating.\n";
        exit(EXIT_FAILURE);
    }
    int j = 0;
    do{             // инициализируем массив значениями из файла
        fin >> num;
        arr[j] = num;
        ++j;
    }while (fin.good());
    double matrix[LINE][COLUMN]; // матрица 3 х 5
// счетчики: s - кол-во строк в матрице; k - кол-во символов в каждой строке
// f - элементы в последней строке; а - индекс элемента массива arr
    int s, k, f, a;
    a = 0;
     for (s = 0; s < LINE; ++s){    // инициализация матрицы
        if (LINE - 1 == s){ // здесь инициализируем последнюю строку
            f = COLUMN - 1;
            for (int t = (c - 1); t > (c - COLUMN)-1; --t){
                matrix[s][f] = arr[t];
                --f;    
            }
            break;
        }
        for (k = 0; k < COLUMN; ++k){   // инициализируем первые строки
            matrix[s][k] = arr[a];
            ++a;
        }
    }
    double sum5str = 0; // сумма последней строки в матрице
    for (s = 0; s < LINE; ++s){ // вывод матрицы на экран
        for (k = 0; k < COLUMN; ++k){
            if (LINE - 1 == s)  // если это последняя строка...
                sum5str += matrix[s][k];    // ...считаем сумму 
            cout << setw(6) << right << matrix[s][k];
        }
        cout << endl;
    }
    cout << "The sum of the last line: " << sum5str << endl;
    delete [] arr;
    fin.close();
    return 0;
}

Юрий, если уж идти по пути считывания всего содержимого файла в память с дальнейшим распихиванием значений в целевую матрицу, то лучше уж использовать vector из STL и не считывать файл дважды.

Но это, в принципе, способ порочный. А если размер файла несколько десятков гигабайт? Никакой оперативы не хватит.

Вообще-то говоря, задача сформулирована некорректно.

В файле содержатся числа.

Это как надо понимать? В текстовом файле содержатся строковые представления чисел? Или числа находятся в двоичном файле в своём «нативном» виде? И какие это числа: целые или с плавающей точкой, одинарной или двойной точности и т.д.

В зависимости от того, как представлены числа в файле, решение задачи может быть в корне различным.

Спасибо Всем огромное, очень помогли! Задачу написала, сдала всё отлично!)

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.