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

Реализация по методу RLE - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ OpenMP долгий dinamic http://www.cyberforum.ru/cpp-beginners/thread580479.html
Добрый день. Была задача разобраться с OpenMP. Возникла следающая проблема- при распаралеливании цикла по методу dinamic, код: void ResultCalculation15Din (int* pMatrix, int* pVector, int* pResult, int Size) {// multiplication for(int tmp=0; tmp<100; tmp++) { #pragma omp parallel for schedule(dynamic, 15) shared(pMatrix, pVector, pResult) firstprivate(Size) for (int i=0; i<Size;...
C++ Двусвязаный список и очередь Помогите написать пожалуйста программы 1) За один просмотр очереди с информационным полем - действительные числа напечатать информационные элементы в следующем порядке: сначала - все числа, меньшие а, затем — все числа из отрезка , и наконец — все остальные числа, сохраняя исходный порядок в каждой из этих трех групп чисел. Числа а и b задает пользователь. 2) Даны указатели Рх и Ру на два... http://www.cyberforum.ru/cpp-beginners/thread580478.html
C++ задача расчет произвольного треугольника по трем значениям
Дан произвольный треугольник ABC, для которого определен следующий набор характерных параметров: а, b, с — стороны треугольника; α, β, γ — углы (в градусах); h — высота, опущенная на сторону с; S — площадь; Р — периметр треугольника. По трем заданным параметрам вычислить все остальные. пожалуйста подкиньте алгоритм решения этой задач, заранее спасибо.
Исправьте, пожалуйста, код C++
нужно определить класс поезд. в программе сделать вывод массива объектов, упорядочение массива по номерам поездов, вывод расписания, соответствующему заданому маршруту #include <iostream.h> #include <string.h> #include <conio.h> #include <stdio.h> #include <ctype.h> #include <iomanip.h> #define n 4
C++ обработка функции в textbox http://www.cyberforum.ru/cpp-beginners/thread580435.html
подскажите как сделать в 1м textbox вводим значение x: что то вроде 2+3, во 2м textbox мы брали значение 1го текстбокса, и использовали его как переменную х, вроде этого: x*3+x*x+3
C++ Описать структуру с именем WORKER (найти ошибку) Описать структуру с именем WORKER, содержащую поля: фамилия и инициалы работника; название занимаемой должности; зарплату; год поступления на работу. Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из 5 структур типа WORKER; вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;... подробнее

Показать сообщение отдельно
Pharaoh_dp
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 5
20.05.2012, 17:40     Реализация по методу RLE
нашел программу по методу RLE, но она в конечном счете выдает только начальные символы, а коэффициенты "проглатывает". Например, вводим "wwwwwwwwwddddddddd11111111122222333", а на выходе получаем "wd123". Может где ошибка, посмотрите пожалуйста.

Код
#include <iostream>
#include <stdio.h>
#include <conio.h>
 
class RLE {
    public:
        void compress(char *inputFile, char *outputFile) {
            FILE *inFile = fopen(inputFile, "rb");
            FILE *outFile = fopen(outputFile, "wb");
            char oldChar = '\0';
            long times = 0;
            int first = 1;
            while (1) {
                char ch = fgetc(inFile);
                if (feof(inFile)) {
                    break;
                }
                if (first) {
                    oldChar = ch;
                    times = 1;
                    first = 0;
                } else {
                    if (ch == oldChar) {
                        times++;
                        if (times == 255) {
                            fputc(oldChar, outFile);
                            fputc('\xFF', outFile);
                            times = 0;
                        }
                    } else {
                        fputc(oldChar, outFile);
                        fputc(char(times), outFile);
                        times = 1;
                        oldChar = ch;
                    }
                }
            }
            fputc(oldChar, outFile);
            fputc(char(times), outFile);
            fclose(inFile);
            fclose(outFile);
        }
        void decompress(char *inputFile, char *outputFile) {
            FILE *inFile = fopen(inputFile, "rb");
            FILE *outFile = fopen(outputFile, "wb");
            char ch, count;
            while (1) {
                ch = fgetc(inFile);
                count = fgetc(inFile);
                if (feof(inFile)) {
                    break;
                }
                for (int i = 0; i < count; i++) {
                    fputc(ch, outFile);
                }
            }
            fclose(inFile);
            fclose(outFile);
        }
};
 
 
int main() {
    RLE *r = new RLE();
    r->compress("10x10.txt", "out.txt");
    r->decompress("out.txt", "in.txt");
    delete r;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru