Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Razlom

Методы гаусса, крамера, база данных

19.04.2012, 16:15. Показов 823. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Столкнулся с некоторым числом проблем, которые в силу недостатка опыта, а возможно и ума, не могу решить. Просьба помочь советом, если вас это не затруднит. Сразу скажу, код кривоват, мягко говоря.

1. Создание базы данных.
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <iostream.h>
struct base
{
    char fam[15];
    char name[10];
    char fath[20];
    char number[7];
    char adres[40];
    long balans;
      };
void vvod(int nom, struct base *db)
{
    printf("vvedite svedenia %d:\n",(nom+1));
    cout<<"vvedite familiu: \n";
     gets(db->fam);
    cout<<"vvedite imya:\n";
     gets(db->name);
    cout<<"vvedite otchestvo:\n";
         gets(db->fath);
    cout<<"vvedite adres:\n";
     gets(db->adres);
    cout<<"vvedite nomer telefona:\n";
    gets(db->number);
    db->balans=((rand()%30)*(-1)*1000);
    return;
}
void main(void)
{
    struct base bd[50];
    int i,N,tday,opl;
    char c,fam_p[20],num_p[7],tmp[80];
    cout<<"Vvedite razmer basi dannih<50:\n";
    cin>>N;
    cout<<"vvedite dannie:\n";
    for (i=0;  i<N; i++)
    vvod(i,&bd[i]);
    cout<<"vvedite chislo:\n";
    cin>>tday;
    if (tday==1)
        for (i=0; i<N; i++)
        {
            opl=rand()%30*1000;
           bd[i].balans=bd[i].balans+opl;
        }
        goto menu;
menu:
    cout<<"MENU:\n";
    cout<<"1. rabota s basoi dannih\n";
    cout<<"2. poisk po familii\n";
    cout<<"3. poisk po nomeru\n";
    cout<<"4. formirovanie spiska dolzhnikov\n";
    cout<<"5. vihod\n";
    goto nav;
nav:
    cout<<"viberite punkt\n";
    cin>>c;
    switch(c)
    {
    case('1'):
    goto rabota;
    case('2'):
    goto poiskf;
    case('3'):
        goto poiskn;
    case('4'):
    goto spis;
    case('5'):
        goto exit;
    default:
        puts("proverte pravilnost vvoda\n");
        goto nav;
    }
rabota:
    for(i=0; i<N; i++)
    cout<<(i+1)<<' '<<bd[i].fam<<' '<<bd[i].name<<' '
    <<bd[i].fath<<' '<<bd[i].adres<<
    ' '<<bd[i].number<<"\n";
cout<<"redactirovat? y/n\n";
cin>>c;
switch(c)
{case('y'):
goto redact;
case('n'):
goto menu;
default:
{cout<<"nevernyy vvod\n";
goto menu;}}
redact:
    puts("menu redactirovania\n");
    puts("1. izmenenie nomera\n");
    puts("2. izmenenie imeni\n");
    puts("3. izmenenie familii\n");
    puts("4. izmenenie otchestva\n");
    puts("5. izmenenie adresa\n");
    puts("6. dobavlenie\n");
    puts("7. udalenie\n");
    puts("8. v menu\n");
red:
    cout<<"viberite punkt:\n";
    cin>>c;
    switch(c)
    {
    case('1'):
        goto red_n;
    case('2'):
        goto red_i;
    case('3'):
        goto red_f;
    case('4'):
        goto red_ot;
    case('5'):
        goto red_ad;
    case('6'):
        goto add;
    
    case('8'):
        goto menu;
    default:
        puts("nevernyy vvod\n");
        goto red;
    }
red_n: //изменение номера
    puts("viberite nomer zapisi:\n");
    cin>>i;
    if(i>N)
    {
    cout<<"neverny vvod!\n";
        goto red_n;
    }
    cout<<"vvedite novy nomer:\n";
    gets(bd[i-1].number);
    goto povt;
red_i: //изменение имени
    puts("viberite nomer zapisi:\n");
    cin>>i;
    if(i>N)
    {
        puts("neverny vvod!\n");
        goto red_i;
    }
    puts("vvedite novoe imya:\n");
    gets(bd[i-1].name);
    goto povt;
red_f: //изменение фамилии
    puts("viberite nomer zapisi:\n");
    cin>>i;
    if(i>N)
    {
        puts("neverny vvod!\n");
        goto red_f;
    }
    puts("vvedite novuyu familiyu:\n");
    gets(bd[i-1].fam);
 
    goto povt;
red_ot: //изменение отчества
    puts("viberite nomer zapisi:\n");
    cin>>i;
    if(i>N)
    {
        puts("neverny vvod!\n");
        goto red_ot;
    }
    puts("vvedite novoe otchestvo:\n");
    gets(bd[i-1].fath);
    goto povt;
red_ad: //изменение адреса
    puts("viberite nomer zapisi:\n");
    cin>>i;
    if(i>N)
    {
        puts("neverny vvod!\n");
        goto red_ad;
    }
    puts("vvedite novy adres:\n");
    gets(bd[i-1].adres);
    goto povt;
add: //добавление записи
    puts("vvedite dannie:\n");
    vvod(N, &bd[N]);
    N=N+1;
    goto povt;
poiskf: //поиск по фамилии
    puts("vvedite familyu:\n");
    
    gets(fam_p);
    c=0;
    for(i=0; i<N; i++){
    if (bd[i].fam==fam_p)
    {cout<<bd[i].number<<' '<<bd[i].fam<<' '<<bd[i].name<<
    ' '<<bd[i].fath<<' '<<bd[i].adres<<"\n";
    c++;} }
    if (c==0)
        cout<<"net sovpadeniy!\n";
    puts("nazmite r dlya povtora\n");
    scanf("%c",&c);
    switch(c)
    {
    case('r'):
        goto poiskf;
    default:
        goto menu;
    }
poiskn: //поиск по номеру
    puts("vvedite nomer:\n");
    gets(num_p);
    for(i=0; i<N; i++)
        if (bd[i].number==num_p)
                            printf("%7s %20s %15s %20s %80s\n",bd[i].number,bd[i].fam,bd[i].name,bd[i].fath,bd[i].adres);
    puts("nazmite r dlya povtora\n");
    scanf("%c",&c);
    switch(c)
    {
    case('r'):
    goto poiskf;
    default:
        goto menu;
    }
 
povt:
    puts("neobhodima eshe operaciya? y/n\n");
    scanf("%c",&c);
    switch(c)
    {
    case('y'):
        goto red;
    case('n'):
        goto menu;
    default:
        puts("neverny vvod!\n");
        goto povt;
    }
spis: 
    c=0;
    for (i=0; i<N; i++)
        if (bd[i].balans<0)
            {
                printf("%7s %20s %15s %20s %80s %d\n",bd[i].number,bd[i].fam,bd[i].name,bd[i].fath,bd[i].adres,bd[i].balans);
                c++;}
        if (c==0)
            puts("zadolzhennostey net!\n");
        goto menu;
exit:
    puts("nazhmite knopku dlya zakritiya programmi\n");
}
В данном случае возникают ошибки:
а) При попытке изменить фамилию/имя/отччество/адрес, все либо не работает корректно, либо после первого изменения при попытке изменить следующее значение оно просто стирается.
б) не работают поиски. Вообще.
в) необходимо сделать удаление записей. Первоначально я планировал использовать код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
del:
    cout<<"vvedite nomer udalyaemoy zapisi:\n";
    cin>>c;
    if(c>(N+1))
    {
        puts("neverny vvod!\n");
        goto del;
    }
    for(i=(c-1); i<N; i++)
    {
        bd[i].number=bd[i+1].number;
        bd[i].fam=bd[i+1].fam;
        bd[i].name=bd[i+1].name;
        bd[i].fath=bd[i+1].fath;
        bd[i].adres=bd[i+1].adres;
        bd[i].balans=bd[i+1].balans;              
    }
    N=N-1;
Однако в процессе столкнулся с тем, что даже при расстановке указателей компилятор ругается.
Не обращайте внимания на printf, puts и scanf, я их понемного заменяю.

2. Метод Гаусса.
Описанный в данной теме алгоритм вызвал несколько вопросов, а именно:
а) все условия типа
for (j=i-1; j>=0; --j)
расцениваются как always true, помогает убрать =, однако, боюсь, после этого они работать перестанут. Как поступить?
б)
a[k+t*n]&=a[k+i*n];
a[k+i*n]&=a[k+t*n];
a[k+t*n]&=a[k+i*n];
выдают "Illegal use of floating point". Решения я не нашел.

3. Метод Крамера.
Подойдет ли описанный здесь алгоритм для расчета СЛАУ 10го порядка?

Заранее благодарен. К сожалению, я очень ограничен во времени, что и послужило причиной обращения.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.04.2012, 16:15
Ответы с готовыми решениями:

База данных, объекты и методы
Есть класс Tank: public class Tank { public int Id { get; set; } public string Form { get; set; } ...

Решение СЛАУ-3 методом Гаусса (Крамера).
решите пожалуйста Для СЛУ-3 найти неизвестные методом Гаусса (Крамера).

Метод Крамера и Гаусса для n неизвестных
Здравствуйте.Мне надо написать визуальную программу по решению слау методом крамера и гаусса.Метод гаусса я кое-как написала,и вроде бы...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.04.2012, 16:15
Помогаю со студенческими работами здесь

Решение методом Гаусса, Крамера и матричным.
Помогите решить методом уравнения Гауса, Крамера и матричным(Блочным) методом матрицу в программе Mathcad и описать все действия для...

Решить СЛАУ методом Крамера либо Гаусса
Здравствуйте, помогите решить систему методом Крамера либо Гаусса, через VBA. Система имеет размер 4х4 + вектор-столбик (прикрепляю...

Сложность алгоритмов Гаусса и Крамера решения СЛАУ
Прошу знающих людей объяснить мне какую вычислительную сложность имеют вышеуказанные методы и почему. Поиск в инете ничего не дал, т.к. там...

Решение систем линейных уравнений методами Гаусса и Крамера
Вот само задание: Написать программу, осуществляющую решение систем линейных уравнений методами Гаусса и Крамера. Программа должна...

Решение систем линейных уравнений методами Крамера и Гаусса
помогите разработать проект, который вычисляет решение систем линейных уравнений методами Крамера и Гаусса


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru