1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| warhel |
3.12.2006 18:52
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
Есть задача:
вычислить матрицу вида: C=A3+B3 3 - это степень, степень размер матрицы и т.д. естественно вводит пользователь вообщем нужно решить всё это на турбо паскале.. я ещё не очень хорошо в нём разбираюсь но вот что всё таки сделал сам: (работает не правельно, выводит вообще числа и не близкие к ответу) Код program matrix; uses crt; const max=10; var i,j,amax, bmax,n: integer; a,b: array [1..max,1..max] of integer; c: array [1..max,1..max] of real; begin writeln('vvedite kol-vo strok v matrice: '); readln(amax); writeln('vvedite kol-vo stolbcov v matrice: '); readln(bmax); write('vvedite stepen: '); readln(n); writeln('vvod matrici A'); for i:=1 to amax do for j:=1 to bmax do begin write('vvedite ',i,'-й элемент ',j,'-строки: '); readln(a[i,j]); end; {end for} writeln('vvod matrici B'); for i:=1 to amax do for j:=1 to bmax do begin write('vvedite ',i,'-й элемент ',j,'-строки: '); readln(b[i,j]); end; {end for} for i:=1 to amax do for j:=1 to bmax do begin c[i,j]:=exp(n*(a[i,j])+exp(n*(b[i,j])) ); end; {end fir} for i:=1 to amax do for j:=1 to bmax do writeln(c[i,j]); repeat until keypressed; end. Помогите пожалуста спасибо заранее =) Сообщение отредактировано: warhel - 3.12.2006 18:52 |
![]() ![]() |
| warhel |
6.12.2006 11:35
Сообщение
#2
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: 0 |
Вот ещё один вопрос возник.. а как быть если степень отрицательная?
напомню задачу: определить матрницу С=А3+В3, где 3 - это степень.. я делал так, чтобы вычислять задачу при отрицательной степени: сделал проверку, если стпень, которую ввёл юзер отрицательна, значит берём модуль и ставим логическую переменную, при выводе ответа опять проверка, если переменная тру, тогда пишем 1/ответ, но почему считает не правельно.. подскажите пожалуйсто.. ну и если ещё какие то недочёты уваидите тоже буду рад =) вот конечный вариант алгоритма: Код program matrix; uses crt; const max=10; var i,j,amax, bmax,n: integer; a,b: array [1..max,1..max] of real; c: array [1..max,1..max] of real; flag: boolean; t: real; begin clrscr; writeln('Будьте внимательны, количество строк и стобцов должно быть больше 0 и меньше ',max); repeat writeln('Введите количество строк в матрице: '); readln(amax); writeln('Введите количество столбцов в матрице: '); readln(bmax); if (amax<0) or (amax>max) or (bmax<0) or (bmax>max) then writeln('Внимание Вы ввели недопустимо значение, повторите.'); until (amax>0) and (amax<max) and (bmax>0) and (bmax<max); write('Введите степень: '); readln(n); if n<0 then begin n:=abs(n); flag:=true; end; writeln('Ввод матрицы A:'); for i:=1 to amax do for j:=1 to bmax do begin write('Введите ',i,'-й элемент ',j,'-строки: '); readln(a[i,j]); end; {end for} writeln('Ввод матрицы B:'); for i:=1 to amax do for j:=1 to bmax do begin write('Введите ',i,'-й элемент ',j,'-строки: '); readln(b[i,j]); end; {end for} for i:=1 to amax do for j:=1 to bmax do begin c[i,j]:=exp(n*LN(a[i,j]))+exp(n*LN(b[i,j])); end; {end for} if flag then begin for i:=1 to amax do for j:=1 to bmax do t:=1/c[i,j]; writeln(t); end else begin for i:=1 to amax do for j:=1 to bmax do writeln(c[i,j]:3:3); end; repeat until keypressed; end. |
warhel Вычислить матрицу на Tp7 3.12.2006 18:52
klem4 ну во первых ты судя по всему матрицу не правильно... 3.12.2006 19:46
warhel ну это я пробывал менять местами вообщем смысла не... 3.12.2006 20:03
volvo c[i,j]:=exp(n*LN(a[i,j]))+exp(n*LN(b[i,j]));? 3.12.2006 20:05
warhel volvo, ну как я думал эта строчка должна была возв... 3.12.2006 20:16
volvo Ты внимательно посмотри, на то, что было у тебя, и... 3.12.2006 20:32
warhel а извини плз, я подумал что ты просто выделил мою ... 3.12.2006 20:39
мисс_граффити а разве возведение матрицы в степень - это возведе... 3.12.2006 21:00
volvo :) "That, detective, is the right question... 3.12.2006 21:31
warhel неет матрицу в степень мне возводить не надо =) эт... 3.12.2006 21:46
мисс_граффити так ты определись, надо ли тебе перемножать матриц... 3.12.2006 21:58
warhel я плохо наверное обьясняю сори =)
вот значит ещё р... 3.12.2006 22:14
Archon мисс_граффити и volvo указали тебе на то, что в ма... 3.12.2006 22:30
warhel Archon, я ж пишу, в степень конкретно матрицу возв... 3.12.2006 22:39
Archon нет 3.12.2006 22:50
volvo Насколько я помню, в математике для квадратной мат... 6.12.2006 12:10
volvo А ошибка у тебя - в том, что ты СНАЧАЛА складываеш... 6.12.2006 12:20
warhel оо спасиба =) точно, а я сидел голову ломал откуда... 6.12.2006 12:48![]() ![]() |
|
Текстовая версия | 11.12.2025 11:46 |