Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с блоками 
:(
    Опции темы
dolboxlop
Дата 10.12.2011, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.12.2011

Репутация: нет
Всего: нет



программа шифрует текст методом двойной перстановки, тоесть переставляет столбик и столбец.
входные данные: файл тхт с текстом  и с клавы вводить 2 числа(длина матрицы) и затем вводятся ключи(как перставлять) допустим 4-5-4231-52413

допустим у нас матрица 5 на 5, тоест ьмы можем считать 25 символов. задача такая: чтобы прога считала пару блоков, тоесть если 150 символов, то прога проходит 6 блоков. есть 2 идеи: прочитать весь  массив в строку и работать уже со строкой(но не рационально) 2-считывать с текста, пока не будет 0х0. но я не могу это написать, помогите одним из способов 

Код

#include<stdio.h>
#include<iostream>
#include<conio.h>
#include<time.h>
#include<stdlib.h>
#include<ctype.h>
using namespace std;

int main(){
    char A[100][100],B[100][100];
    int i,j,k,m,c,d,K,C[50],D[50];
    cout<<"vvedite dliny kluchei, vnachale visote,potom dliny"<<endl;
    cin>>d>>c;
    
    for(i=0;i<d;i++)            // d-высота массива  D[i]- массив столбца
        cin>>D[i];
    for(i=0;i<c;i++)            //c-длина С[i]- длина
        cin>>C[i];
    
    
    for(i=0;i<d;i++){            // заполняем массив шлаком
        for(j=0;j<c;j++) 
            A[i][j]=' ';
            //rand()%26+'a';
            }


    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);

    for(i=0;i<d;i++)                           // вводим массив
        for(j=0;j<c;j++)
            scanf("%c",&A[i][j]);

    for(i=0;i<d;i++){                            //работаем с переварачиваением строк  о-длина столбцов
        k=D[i];
        for(j=0;j<c;j++){
            B[k-1][j]=A[i][j];
        }                 
    }
    for(j=0;j<c;j++){                      
        for(i=0;i<d;i++)
            A[i][k-1]=B[i][j];
    }  
    
    for(i=0;i<d;i++)
        for(j=0;j<c;j++)
            printf("%c",A[i][j]);
    return 0;  
}


PM MAIL   Вверх
Леопольд
Дата 11.12.2011, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



dolboxlop, разбей алгоритм на функции. Хотя бы напиши функцию swap которая переставляет местами строку и столбец. Код будет понять намного проще.


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
dolboxlop
Дата 11.12.2011, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.12.2011

Репутация: нет
Всего: нет



код правильно всё работает, просто мне нужно понять, как сделать так, чтобы он считывал второй раз из файла с того место, где он закончил в первый раз. я нуб в функциях, пока всё по алгоритмам делаю(
PM MAIL   Вверх
Леопольд
Дата 11.12.2011, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Цитата(dolboxlop @  11.12.2011,  10:47 Найти цитируемый пост)
просто мне нужно понять
Мне тоже, что-бы помочь. Пока не напишешь хотя-бы swap, я не почешусь...  smile 



--------------------
вопросов больше чем ответов
PM MAIL   Вверх
dolboxlop
Дата 11.12.2011, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.12.2011

Репутация: нет
Всего: нет



злые вы(  smile 
да что там непонятно то) просто меняем столбик и столбец, говорю в самцу прогу не надо лезть, нужно сделать так, чтобы она пару раз считывала текст, разбитый по частям
PM MAIL   Вверх
volatile
Дата 11.12.2011, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Цитата(dolboxlop @  11.12.2011,  16:16 Найти цитируемый пост)
просто меняем столбик и столбец, говорю в самцу  

Какому самцу, 
что такое столбик, и что такое столбец? 
в чем отличие столбика от столбца?
smile 

Цитата(dolboxlop @  10.12.2011,  21:15 Найти цитируемый пост)
у нас матрица 5 на 5, тоест ьмы можем считать 25 символов. задача такая: чтобы прога считала пару блоков, тоесть если 150 символов

здесь тоже не понял, пару блоков = 150 символов. 
Ахинея какая-то.

Цитата(dolboxlop @  11.12.2011,  16:16 Найти цитируемый пост)
да что там непонятно то

Действительно, здесь все тупые.


PM MAIL   Вверх
Леопольд
Дата 11.12.2011, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Цитата(dolboxlop @  11.12.2011,  16:16 Найти цитируемый пост)
да что там непонятно то)
Если разбираться, уверен что всё просто. Но я не собираюсь разбираться с плохо оформленным кодом, мне моё время дорого. Хуже того, велик шанс, что разбивая алгоритм на составные, решишь проблему сам...

Это сообщение отредактировал(а) Леопольд - 11.12.2011, 18:17


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0964 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.