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

Текст записывается в квадратную матрицу, а затем прочитывается по спирали, начиная с центра - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функции в C++. http://www.cyberforum.ru/cpp-beginners/thread546347.html
Здравствуйте. Написал код программы, что-то на подобии базы данных библиотеки. Но мне нужно код переписать с использованием функций. Как создавать и работать с фуекциями я знаю, но затрудняюсь с...
C++ Вывод константы long double Доброго времени суток! Учусь программировать на С++ и возникла такая проблема: есть константа 6.626068E-034. я назначил тип long double. При выводе она округляется до 6.62607E-034. Вопрос: можно... http://www.cyberforum.ru/cpp-beginners/thread546345.html
C++ Тройное равенство в списке
Здраствуйте, в программе создается динамический односвязный кольцевой список. Для этого создана структура с двумя "ячейками": ELEM где сам элемент и Next где адрес на следущий элемент. ...
Замена цифр в числе C++
Здравствуйте, помогите с заданием: Дано натуральное число n, заменить в нем цифры 3,5,7 на 4,6,8 соответственно. На паскале писала подобную программу, она у меня есть (если нужно могу выложить), но...
C++ Шаблон класса «Комплексное число» http://www.cyberforum.ru/cpp-beginners/thread546306.html
Помогите пожалуйста исправить ошибки в программе Задание :Создать шаблон класса «Комплексное число» – Complex. Класс должен содержать несколько конструкторов и операции для сложения, вычитания,...
C++ Вывести слова в порядке, соответствующем латинскому алфавиту Дана строка символов, состоящих из произвольного текста на английском языке, слова разделены пробелом. Вывести на экран слова этого текста в порядке, соответствующем латинскому алфавиту. подробнее

Показать сообщение отдельно
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51

Текст записывается в квадратную матрицу, а затем прочитывается по спирали, начиная с центра - C++

12.04.2012, 20:47. Просмотров 1986. Ответов 22
Метки (Все метки)

Всем доброго времени суток!
Кому не сложно, взгляните, пожалуйста.
Дан текстовый файл, содержащий текст, который должен быть зашифрован по следующему принципу: текст записывается в квадратную матрицу (матрица заполняется по строкам), а затем прочитывается по спирали, начиная с центра )против часовой стрелки).
Написать программу, считывающую текст из файла, заполняющую матрицу для шифрования текст, зашифровывающую текст и сохраняющую его в символьном файле.
Текст содержит не более 10000 знаков. Размер матрицы определить исходя из количества символов в файле.

Попыталась написать, ошибок при компиляции не выдает, а при работе зависает и вырубается.

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
89
90
91
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <math.h>
int main()
{
    FILE *f;
    FILE *b;
    char txt[10][10];
    int i=0, t=0; 
    int j=0, k=0;
    double v, z;
    f=fopen("text.txt", "rt");
   
    do 
    { 
        fgets (txt[i],50,f);
        txt[i][strlen(txt[i]) - 1]='\0';
         k=k+strlen(txt[i]);               //считаем количество символов в файле
        i++;
      
    }
    while (! feof(f));
    i--;
 
    v=sqrt(k);
    z=ceil(v);
    printf ("%f", z);            //размерность исходного массива
   
   for (j=0;j<i;j++) 
    printf ("%s\n", txt[j]); 
    printf ("%d\n", k); 
        t=z;
     char **a= new char* [t];
     for (i=0; i<t; i++)
     a[i]=new char [t];               
    
    fseek(f,0,SEEK_SET);             
     
     int n=0, m=0;
     do
    {
   if( m == t ) { n=n+1; m = 0; } // заполняем матрицу
   a[n][m] = fgetc( f );
   m ++;
    }
    while ( n != t  );
    
    b=fopen("itog.txt", "wt");
    
     int  i1=15, j1=15, temp=0;        //прочитываем ее по спирали в одномерный массив
     char mas1[t*t]; 
          j=0;
                while(j<j1)
                {
                    i=t-i1;
                    j=t-j1;
                for(j++; j<j1; j++)
                {
                    mas1[temp]=a[i][j];
                    temp++;
                }
                j--;
                for(i++; i<i1; i++)
                {
                    mas1[temp]=a[i][j];
                    temp++;
                }
                i--;
                for(j--; j>=t-j1; j--)
                {
                    mas1[temp]=a[i][j];
                    temp++;
                }
                j++;
                for(i--; i>t-j1; i--)
                {
                    mas1[temp]=a[i][j];
                    temp++;
                }
                i++;
                i1--;
                j1--;
                }
                for(i=t*t-1; i>=0; i--)
                    fputc(mas1[i],f);
 
                              
      getch(); 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru