![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
warhel |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: ![]() ![]() ![]() |
Есть задача:
вычислить матрицу вида: 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 |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот ещё один вопрос возник.. а как быть если степень отрицательная?
напомню задачу: определить матрницу С=А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. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:05 |