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

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

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

> Задачи на матрицы и массивы., Довольно простые.
Sivka
сообщение 6.02.2005 10:39
Сообщение #1


Гость






Здесь пять задач. Три из них я решил, а первую и вторую никак не могу сообразить. Если можно, проверьте решение и напишите, как сделать первую и вторую:
1. Пусть дана вещественная матрица размером 7х7, все элементы которой различны. Найти скалярное произведение строки с наибольшим элементом и столбца с наименьшим элементом.
2. Пусть даны две вещественные матрицы порядка n. Получить новую следующим способом (для нахождения элементов использовать функции) - прибалением к элементам каждого столбца первой матрицы произведения элементов соответствующих строк сторой матрицы
3. Число из n символов называется числом Армстронга, если сумма его цифр в n-й степени равна самому числу. Получить все числа Армстронга из 2,3,4 цифр.
Код
var i,sum: integer;
begin
 for i:=0 to 99 do if sqr(i mod 10)+sqr(i div 10) = i then writeln(i);
 for i:=0 to 999 do begin
   sum:=(i div 100)*(i div 100)*(i div 100) +
     (i mod 100 div 10)*(i mod 100 div 10)*(i mod 100 div 10) +
     (i mod 100 mod 10)*(i mod 100 mod 10)*(i mod 100 mod 10);
   if i=sum then writeln(i);
 end;
 for i:=0 to 9999 do begin
   sum:=sqr(sqr(i div 1000)) +
     sqr(sqr(i mod 1000 div 100)) +
     sqr(sqr(i mod 1000 mod 100 div 10)) +
     sqr(sqr(i mod 1000 mod 100 mod 10));
   if i=sum then writeln(i)
 end;
readln;
end.


4. Вычислить y=cos (x) + cos (x^2) ... + cos (x^30).
Код
var a,x,m:real;n:integer;
Function Power(x:real;n:integer):real;
begin
 if n=1 then Power:=x
 else begin
   if odd(n) then Power:=Power(x,n-1)*x
   else Power:=sqr(Power(x,n div 2))
 end;
end;

begin
 readln(x);
 for n:=1 to 30 do m:=m+cos(power(x,n));
 writeln(m);
 readln;
end.

5. Дан массив целых чисел. Произвести для него следующие операции - определить сколько раз в массиве меняется знак.
Массив желательно 3-х мерный... Вводится вручную.
Код
var
 i,j,n,chislo: integer;
 a: array [1..10] of array [1..10] of real;

begin
 readln(n);
 for i:=1 to n do
   for j:=1 to n do readln(a[i,j]);
 for i:=1 to sqr(n)-1 do
   if a[i div (n+1) + 1, i mod (n+1)]*
      a[(i+1) div (n+1) + 1, (i+1) mod (n+1)]<0 then inc(chislo);
 writeln(chislo); readln;
end.


Основное, что не могу сделать - в 1) и 2) - осуществить ввод и вывод матрицы. И не могу понять, что такое и как сделать "скалярное произведение строки с наибольшим элементом и столбца с наименьшим элементом.".

Добавлю - я просто учусь программировать в delphi, а знакомый попросил написать в чистом паскале, который я совсем не знаю. Заранее огромное спасибо.
 К началу страницы 
+ Ответить 

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


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

 



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