![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 19.12.2011
Сообщений: 1
|
![]()
Доброго времени, у меня написана программа на С++ необходимо сделать отчёт по ней сегодня-завтра, в отчёте всё написал кроме схемы алгоритмов, так как вообще не понимаю как их делать. помогите пожалуйста кто может. Вот код программы и пример что мне необходимо (взято с другого варианта)
https://vk.com/photo27522330_319097593 //Зачётная программа //Получить целочисленную квадратную матрицу порядка 7, элементами которой являются числа 1, 2, ..., 49, расположенные в ней по спирали. #include "conio.h" #include "stdio.h" #include "stdlib.h" #include "math.h" #include "locale.h" #include "stdafx.h" int FileOpen(int **a, bool pr); void FileSave(int **a,int n); void postr(int **a,int n); void vivod(int **a,int n); void menu(void); int main(void) { setlocale(LC_ALL,"Russian"); int n,i,v; bool men,f1=0,f2=0; n=3; int **a; a = (int **)calloc(n,sizeof(int *)); for(i=0;i<n;i++) { a[i] = (int *)calloc(n,sizeof(int)); } men = 1; do { if (men) { menu(); men = 0; } printf("Выбранный пункт: "); scanf("%d",&v); switch(v) { case 1: printf("Размер матрицы: "); scanf("%d",&n); a = (int **)calloc(n,sizeof(int *)); for(i=0;i<n;i++) { a[i] = (int *)calloc(n,sizeof(int)); } men = 1; f1 = 1; f2 = 0; break; case 2: if (f1) { postr(a,n); f2 = 1; } else { printf("Не задан размер матрицы"); _getch(); } men = 1; break; case 3: if (f2) { vivod(a,n); } else { printf("Не введены данные и не произведены расчёты"); // _getch(); } men = 1; _getch(); break; case 4: n = FileOpen(a,1); a = (int **)calloc(n,sizeof(int *)); for(i=0;i<n;i++) { a[i] = (int *)calloc(n,sizeof(int)); } n = FileOpen(a,0); men = 1; f2 =1; break; case 5: if(f2) { FileSave(a,n); } else { printf("Не произведены расчеты"); _getch(); } men = 1; break; case 6: break; default: printf("Неправильный пункт, введите снова\n"); } }while(v!=6); for(i=0;i<n;i++) { free(a[i]); } free(a); //_getch(); return 0; } void menu(void) { system("cls"); printf("Меню\n"); printf("1 Ввести размер матрицы\n"); printf("2 Рассчитать матрицу\n"); printf("3 Вывести матрицу на экран\n"); printf("4 Считать матрицу из файла\n"); printf("5 Вывести матрицу в файл\n"); printf("6 Выход\n"); } void postr(int **a,int n) { int x1,x2,y1,y2,i,j,k; bool ver, gor; x1=-1; y1=0; x2=n; y2=n; k=0; ver = 0; gor = 0; i=0; j=0; while(k!=(n*n)) { k++; if ((ver==0)&&(gor==0)) { a[i][j] = k; i++; if (i==x2) { i--; x2--; gor = 1; } } if ((ver==0)&&(gor==1)) { a[i][j] = k; j++; if (j==y2) { j--; y2--; gor = 0; ver = 1; } } if ((ver==1)&&(gor==0)) { a[i][j] = k; i--; if (i==x1) { i++; x1++; gor = 1; } } if ((ver==1)&&(gor==1)) { a[i][j] = k; j--; if (j==y1) { j++; y1++; gor = 0; ver = 0; k--; } } } } void vivod(int **a,int n) { int i,j; for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%3d",a[j][i]); } printf("\n"); } } void FileSave(int **a,int n) { FILE *fl; char nam[50]; int i,j; printf("Имя файла: "); scanf("%s",&nam); fl = fopen(nam,"w"); fprintf(fl,"%4d\n",n); for(i=0;i<n;i++) { for(j=0;j<n;j++) { fprintf(fl,"%4d",a[j][i]); } fprintf(fl,"\n"); } fclose(fl); } int FileOpen(int **a, bool pr) { FILE *fl; int n; int x1,x2,y1,y2,i,j,k,d; if(pr) { printf("Имя файла: "); scanf("%s",&name); } fl = fopen(name,"r"); fscanf(fl,"%d",&n); if (pr) { fclose(fl); return n; } bool ver, gor; x1=-1; y1=0; x2=n; y2=n; k=0; ver = 0; gor = 0; i=0; j=0; while(k!=(n*n)) { k++; fscanf(fl,"%d",&d); if ((ver==0)&&(gor==0)) { a[i][j] = d; i++; if (i==x2) { i--; x2--; gor = 1; } } if ((ver==0)&&(gor==1)) { a[i][j] = d; j++; if (j==y2) { j--; y2--; gor = 0; ver = 1; } } if ((ver==1)&&(gor==0)) { a[i][j] = d; i--; if (i==x1) { i++; x1++; gor = 1; } } if ((ver==1)&&(gor==1)) { a[i][j] = d; j--; if (j==y1) { j++; y1++; gor = 0; ver = 0; k--; } } } fclose(fl); return n; } |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
!!!! Отблагодарю! Нужно НАрисовать блок схему(Алгоритм) по листингу программы НА Ассемблере. | romanos | Помощь студентам | 1 | 25.05.2013 12:54 |
Объединить программы в подпрограммы(использование procedure) и нарисовать блок схему. | Camelot_2012 | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 16.04.2012 22:31 |
Нарисовать блок-схему программы | prikolist | Общие вопросы C/C++ | 4 | 20.05.2009 19:46 |
Не могу нарисовать блок-схему маленькой программы | prikolist | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 25.11.2008 23:40 |
Помогите нарисовать блок-схему на ооочень маленький кусочек программы!!!!! | metamfetamin | Помощь студентам | 1 | 24.11.2007 22:55 |