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

Немного переделать программу - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вопрос про консоль http://www.cyberforum.ru/cpp-beginners/thread89957.html
День добрый. Я новичок в программировании и пишу консольную программу.Хотелось бы узнать у более опытных товарищей. Как сделать так, чтобы из любого места программы вызывалась функция.Т.е. если человек введет, допустим, "help" ,то вызовится некая функция, а после программа вернется к месту вызова.Как можно это реализовать? Заранее благодарен.
C++ написать функцию пинга помогите осущиствить...долго копался в функции system что бы скопировть и переделать исходники-но ничего не получилось ксатти еще вопрос,существует ли функция ping? http://www.cyberforum.ru/cpp-beginners/thread89937.html
C++ Найти число последовательности, у которого количество одинаковых цифр максимально
Найти число последовательности, у которого количество одинаковых цифр максимально?
C++ Поменять строку местами.
Дано слово из 12 букв. Поменять местами его трети следующим образом: Первую треть разместить на месте третьей, вторую на месте первой, третью на месте второй.
C++ Работа с массивами с использованием выделения динамической памяти http://www.cyberforum.ru/cpp-beginners/thread89901.html
Помогите решить вот такие задачи: Задача №1 Дана последовательность чисел b1,...,bn. Получить квадратную матрицу порядка n, элементами которой являются числа b1,...,bn в степени n, расположенные за схемой: http://s39.***********/i086/1001/6b/640eb334fe51.jpg Задача №2 Дана целочисленная прямоугольная матрица, определить количество столбцов, которые не имеют ни одного нулевого элемента P.S. В...
C++ Найти и напечатать наибольшее из трех заданных неравных чисел 1. Дано x, a, b. Вычислить и напечатать у=sin a+cos b+e/4abx. Если y≥0, найти и напечатать наибольшее из трех заданных неравных чисел a, b, x. Если y<0, вычислить z=(a+b)x . 2. Дано x,c. Вычислить z=(x+c)sin cx . Если z<0, напечатать “z<0”, если z≥0, вычислить функцию d=y+ln y , где y изменяется в интервале от 1 до 5 с шагом 0,2. Если d>20 вывести на печать d, y, иначе вычислить p= xcd. подробнее

Показать сообщение отдельно
Shihmars
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 4
26.01.2010, 22:53     Немного переделать программу
Привет) На этой неделе защита лабараторных простейшие я сделал - одну с Вашей помощью здесь
осталось две очень прошу помочь Задача Сортировка массивов
Вот та задача похожая, которую я пытался менять

ДВА ВАРИАНТА Я ПРИВЕЛ В ДОКУМЕНТЕ 2.Doc Первый текс программы которой я скину и второй мой)
Надежда умирает последней - надеюсь кому то из АСов станет интересно разобраться и кто то выручит меня)

Общее Задание
Для формирования матрицы A(n,n) предусмотреть функцию (с условным названием form_matr(a, n), внутри которой предусмотреть вызов функции a[i,j]=elem(i,j). Внутри функции elem предусмотрен вызов других необходимых функций (см. табл.). Внимательно следите за типами передаваемых и возвращаемых значений.
Программа должна содержать несколько функций. В главной функции предусмотреть резервирование памяти для динамического массива a(n,n), в зависимости от введенного размера n. Для печати исходной и отсортированной матрицы полезно предусмотреть универсальную подпрограмму. Для оценки скорости работы разных методов сортировки предусмотреть глобальные счетчики числа операций проверки и обмена.

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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
 
int o=0,p=0;
 
void main()
    {
        int n,v,k=0;
        double **A;
        void create(double **A, int n);
        void print_(double **A,int n);
        void sort_mmx(double **a, int n, int k);
        void sort_puz(double **a, int n, int k);
        void sort_qck(double **a, int l, int r, int k);
        clrscr();
 
        printf("VVedite Razmernost Kvadratnoy MATRICY:");
        scanf("%d",&n);
        A=(double**)malloc(n*sizeof(double));
        for(int i=0;i<n;i++)
            A[i]=(double *)malloc(n*sizeof(double));
        create(A,n);
        print_(A,n);
 
printf("\n BBedite Nomer Stolbca ");
        scanf("%d",&k);
        k--;
printf("Vyberite Metod Sortirovki:\n1-Vyborom minimuma\n2-Metod PUZYRKA \n3-Metod Bystroy sortirovki\\n\r");
scanf("%d", &v);
switch (v)
{
    case 1: goto l1;
    case 2: goto l2;
    case 3: goto l3;
    default:
        printf("Nepravilnyi VVOD");
}
l1:    printf("\n Vyborom minim maxim\n");
        sort_mmx(A, n, k);
        goto q;
l2:    printf("\n Metod PUZYRKA\n");
        sort_puz(A, n, k);
        goto q;
l3:    printf("\n METOD Bystroy sortirovki\n");
        if(n%2)
          sort_qck(A, 0, n-1, k);
        else
          sort_qck(A, 0, n-2, k);
        printf(" so=%5d         sp=%5d\n",o,p);
        goto q;
q:  for (i=0;i<n;i++) printf("%9.4lf ",A[i][k]);
        for (i=0;i<n;free(A[i]),i++);
        getch();
    }
 
double Sh(double x)
    {
        double y=(exp(x)-exp(-x))/2;
        return y;
    }
 
double Ch(double x)
    {
        double y=(exp(x)+exp(-x))/2;
        return y;
    }
 
void create(double **A, int n)
    {
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
            A[i][j]=fabs(Sh(0.1*i)-Ch(0.2*j));
    }
void print_(double **A,int n)
    {
        textcolor(14);
        for(int i=0;i<n;i++)
            {
                for(int j=0;j<n;j++)
                    cprintf("%9.4lf",A[i][j]);
                printf("\n\r");
            }
    }
 
void sort_mmx(double **a, int n, int k)
{ int i,j,t,so=0,sp=0;
    double c;
    for (i=0;i<n-2;i+=2)
        if (a[i][k]>0)
        {
            t=i;
            for(j=i+2;j<n;j+=2)
            {
                sp++;
                if ((a[t][k]>a[j][k])&&(a[j][k]>0)) t=j;  //**室Ё¬ ¬Ё*Ё¬г¬
            }
            c=a[i][k]; a[i][k]=a[t][k]; a[t][k]=c;  so++; //бв*ўЁ¬ ¬Ё*Ё¬г¬ ** 1 ¬Ґбв®
        }
    printf(" so=%5d         sp=%5d\n",so,sp);
}
 
void sort_puz(double **a, int n, int k)
{ int i,t=0,so=0,sp=0;
    double c;
    do
    {
        t=0;
        for (i=0;i<n-2;i+=2)
        {
            sp++;
            if (a[i][k]>a[i+2][k])
            { t++;
            so++;
            c=a[i][k]; a[i][k]=a[i+2][k]; a[i+2][k]=c;
            }
        }
    }
    while (t>0);
    printf(" so=%5d         sp=%5d\n",so,sp);
}
 
void sort_qck(double **a, int l, int r, int k)
{ int i, j,so=0,sp=0;
  double s,c;
    i=l; j=r;
    s=a[(l+r)/2][k];
//    for (k=0; k<n; k++){
//        i=l; j=r; s=a[k][(l+r)/2];
    do {
        while (a[i][k]<s) i=i+2;
        while (a[j][k]>s) j=j-2;
        p++;
        if (i<j) {
        c=a[i][k]; a[i][k]=a[j][k];  a[j][k]=c;     j=j-2;   i=i+2; so++; o++;
       }
    }
    while (i<j);
    if ((l<j) && (so!=0))
        sort_qck(a,l,j,k);
    if ((r>i) && (so!=0)) sort_qck(a,i,r,k);
//    printf(" so=%5d         sp=%5d\n",so,sp);
}
Вложения
Тип файла: doc 2.doc (20.5 Кб, 14 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru