IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Матрица и системы счисления, Скалярное произведение внутри матрицы и калькулятор (*)->(10)
False
сообщение 19.12.2006 16:48
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Изучаю Паскаль несколько месяцев. Последние три недели бьюсь над двумя задачами.

1) Дана квадратная матрица. Вычислить скалярное произведение строки с наименьшим элементом на столбец с наибольшим элементом.

Написал программу, но что то не получается в ней - всегда выдаёт нулевое произведение.

Код
program matrix;
var
  n,i,j,min,max,nst,nsb,skp:integer;
  mat:array[1..50,1..50] of integer;
  ar1,ar2:array[1..50] of integer;
begin

writeln('Введите размер квадратной матрицы');
readln(n);
writeln('Введите элементы матрицы');

for i:=1 to n do
  begin
   for j:=1 to n do
    begin
     readln(mat[i,j]);
    end;
  end;

  for i:=1 to n do
  begin
   for j:=1 to n do
    begin
     if mat[i,j]<mat[i+1,j] then min:=mat[i,j];
     ar1[i]:=min;
    end;
  end;

  for j:=1 to n do
  begin
   for i:=1 to n do
    begin
     if mat[i,j+1]>mat[i,j] then max:=mat[i,j+1];
     ar2[i]:=max;
    end;
   end;

  for i:=1 to n-1 do
  if ar1[i]>ar1[i+1] then
   nst:=i+1;
for j:=1 to n-1 do
  if ar2[j]<ar2[j+1] then
   nsb:=j+1;

  for j:=1 to n do
  ar1[j]:=mat[nst,j];
for i:=1 to n do
  ar2[i]:=mat[i,nsb];

skp:=0;
for i:=1 to n do
  skp:=skp+ar1[i]*ar2[j];
writeln('Произведение равно ',skp);
readln;
end.


2) Написать программу для перевода чисел из системы счисления с любым основанием в десятичную систему.

Формула простая: N[b2] = a[q-1]*b[1]^(q-1) + a[q-2]*b[1]^(q-2) + ... + a[1]*b[1]^1 + a[0]*b[1]^0

Например:

(571.31)[8] = (?)[10]

(571.31)[8] = 5*8^2 + 7*8^1 + 1*8^0 + 3*8^(-1) + 1*8^(-2) = (377.390625)[10]

Решение, по моему мнению, должно выглядеть так:

1) Запрос основания системы
2) Запрос числа
3) Вычисление
4) Вывод результата

Но решить задачу никак не получается. Помогите, пожалуйста.

Сообщение отредактировано: False - 19.12.2006 16:49
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 27.07.2025 2:27
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"