Как писать псевдокод ? Написал програму но не знаю как написать к ней псевдокод кто знает расскажите/покажите - C (СИ)
Формулировка задачи:
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "locale.h"
#include "string.h"
#include "time.h"
#define pause system("pause")
void printarr(int **, int );
void bubblesort(int *, int );
void printarr1(int *, int );
int main()
{
setlocale(LC_ALL, "RUS");
int n, i, j,q,w,e,c=0,r=0,h=0, **px,*pw;
srand(time(NULL));
printf("Добро пожаловать в лабораторную работу №7!\n");
printf("Задание: На основе исходного двумерного массива С с рабочим размером n x n, сформировать одномерный массив А.");
printf("Массив А должен содержать только те числа, которые встречаются в массиве С более одного раза. Упорядочить массив А по убыванию, используя метод "пузырька". Вывести Массивы С и А на экран.");
printf("Массивы А и С должны состоять из целых чисел. Значение n вводится пользователем с клавиатуры. Значения элементов Массива С генерируются при помощи датчика случайных чисел\n");
printf("Введите значение n:");
scanf_s("%d", &n);
printf("\n");
px = ((int**)malloc(n*n*sizeof(int)));
if (!px)
{
printf("Память не выделена\n");
pause;
exit(0);
}
for (j = 0; j < n; j++) {
px[j] = (int*)malloc(n * sizeof(int));
if (!px[j])
{
printf("Память не выделена\n");
pause;
exit(0);
}
}
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
px[i][j] = (rand() % 10);
}
printarr(px, n);
pw = (int*)malloc(n*n * sizeof(int));
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
for (q = 0; q < n; q++) {
for (w = 0; w < n; w++) {
if (px[i][j] == px[q][w])
h++;
}
}
if (h > 1) {
for (e = 0; e < c; e++) {
if (px[i][j] == *(pw + e))
{
r++;
}
}
if (r == 0) {
*(pw + c) = px[i][j];
c++;
}
}
h = 0;
r = 0;
}
}
printf("\n");
printf("Массив А до сортировки:\n");
printarr1(pw,c);
printf("\n");
bubblesort(pw, c);
printf("Массив А после сортировки:\n");
printarr1(pw, c);
free(px);
free(pw);
pause;
return 0;
}
void printarr(int **arr, int a)
{
int i, j, x;
printf("Массив C размером n x n\n");
for (i = 0; i < a; i++) {
for (j = 0, x = 1; j < a; j++, x++)
printf("%d ", arr[i][j]);
printf("\n");
}
}
void printarr1(int *arr, int a)
{
int i;
for (i = 0; i < a; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
}
void bubblesort(int *arr, int a)
{
int i, j=0,k;
for (k = 0; k < a-1; k++) {
for (i = 0; i < a-1; i++) {
if ( arr[i] < arr[i+1]){
j = arr[i];
arr[i] = arr[i+1];
arr[i+ 1] = j;
}
}
}
}Решение задачи: «Как писать псевдокод ? Написал програму но не знаю как написать к ней псевдокод кто знает расскажите/покажите»
textual
Листинг программы
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "locale.h"
#include "string.h"
#include "time.h"
#define pause system("pause")
void printarr(int **, int );
void bubblesort(int *, int );
void printarr1(int *, int );
int main()
{
setlocale(LC_ALL, "RUS");
int n, i, j,q,w,e,c=0,r=0,h=0, **px,*pw;
srand(time(NULL));
printf("Добро пожаловать в лабораторную работу №7!\n");
printf("Задание: На основе исходного двумерного массива С с рабочим размером n x n, сформировать одномерный массив А.");
printf("Массив А должен содержать только те числа, которые встречаются в массиве С более одного раза. Упорядочить массив А по убыванию, используя метод "пузырька". Вывести Массивы С и А на экран.");
printf("Массивы А и С должны состоять из целых чисел. Значение n вводится пользователем с клавиатуры. Значения элементов Массива С генерируются при помощи датчика случайных чисел\n");
printf("Введите значение n:");
scanf_s("%d", &n);
printf("\n");
px = ((int**)malloc(n*n*sizeof(int)));
if (!px)
{
printf("Память не выделена\n");
pause;
exit(0);
}
for (j = 0; j < n; j++) {
px[j] = (int*)malloc(n * sizeof(int));
if (!px[j])
{
printf("Память не выделена\n");
pause;
exit(0);
}
}
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
px[i][j] = (rand() % 10);
}
printarr(px, n);
pw = (int*)malloc(n*n * sizeof(int));
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
for (q = 0; q < n; q++) {
for (w = 0; w < n; w++) {
if (px[i][j] == px[q][w])
h++;
}
}
if (h > 1) {
for (e = 0; e < c; e++) {
if (px[i][j] == *(pw + e))
{
r++;
}
}
if (r == 0) {
*(pw + c) = px[i][j];
c++;
}
}
h = 0;
r = 0;
}
}
printf("\n");
printf("Массив А до сортировки:\n");
printarr1(pw,c);
printf("\n");
bubblesort(pw, c);
printf("Массив А после сортировки:\n");
printarr1(pw, c);
free(px);
free(pw);
pause;
return 0;
}
void printarr(int **arr, int a)
{
int i, j, x;
printf("Массив C размером n x n\n");
for (i = 0; i < a; i++) {
for (j = 0, x = 1; j < a; j++, x++)
printf("%d ", arr[i][j]);
printf("\n");
}
}
void printarr1(int *arr, int a)
{
int i;
for (i = 0; i < a; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
}
void bubblesort(int *arr, int a)
{
int i, j=0,k;
for (k = 0; k < a-1; k++) {
for (i = 0; i < a-1; i++) {
if ( arr[i] < arr[i+1]){
j = arr[i];
arr[i] = arr[i+1];
arr[i+ 1] = j;
}
}
}
}
Объяснение кода листинга программы
Код представляет собой программу, которая генерирует двумерный массив случайных целых чисел, затем создает одномерный массив, который содержит только те числа, которые встречаются в двумерном массиве более одного раза. Затем этот одномерный массив сортируется по убыванию с помощью алгоритма пузырька.
Список элементов кода:
- #include
stdafx.h- включает файл с расширением .h, который, вероятно, содержит стандартные функции и объявления. - #include
stdlib.h- включает файл stdlib.h, который содержит функции для работы с памятью и генерации случайных чисел. - #include
stdio.h- включает файл stdio.h, который содержит функции для ввода и вывода данных. - #include
conio.h- включает файл conio.h, который содержит функции для работы с консолью. - #include
math.h- включает файл math.h, который содержит математические функции. - #include
locale.h- включает файл locale.h, который содержит функции для работы с локалью. - #include
string.h- включает файл string.h, который содержит функции для работы со строками. - #include
time.h- включает файл time.h, который содержит функции для работы со временем. - #define pause system(
pause) - определяет функцию pause, которая вызывает функцию system(pause), чтобы приостановить выполнение программы до нажатия клавиши. - void printarr(int arr, int a)** - функция для печати двумерного массива.
- *void bubblesort(int arr, int a)** - функция для сортировки одномерного массива по убыванию с помощью алгоритма
пузырька. - *void printarr1(int arr, int a)** - функция для печати одномерного массива.
- int main() - точка входа в программу. Элементы кода нумерованы для удобства описания.