Помогите в решении простейших задач

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):x=a*a*a; //a^3
y=x*x; //a^9
Ну как так можно, вспоминаем математику:
A^x * A^y = A^(x+y) = A^3 * A^3 = A^(3+3) = A^6
It's a long way to the top if you wanna rock'n'roll
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

somewhere писал(а):Ну как так можно, вспоминаем математику:
A^x * A^y = A^(x+y) = A^3 * A^3 = A^(3+3) = A^6
Ага, похоже на то. Посыпаю голову пеплом
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Хотя нет:
r=a*a*a*a*a;
b=a*a;
res=r*r*r*b*b;
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
ninjais
Сообщения: 15
Зарегистрирован: 09 сен 2007, 07:28

А помогите найти ошибки?..

1). Дана квадратная матрица порядка М. Найти среднее арифметическое элементов каждой её диагонали, параллельной главной (начиная с одноэлементной диагонали А1, М).
var
m:integer;
a:array [1..m,1..m] of integer;
i,j:integer;
s:real;
begin
writeln('Введите m');
read(m);
randomize;
for i:=1 to m do
begin
for j:=1 to m do
begin
a[i,j]:=random(10);
write(a[i,j]:6);
end;
writeln;
end;
if (a=a[j]) then
s:=0;
for i:=1 to m do
s:=a[i,j]/3;
write('Среднее арифметическое= ',s:1:1);
end.


2). Дан двухмерный массив целых чисел. Определить среднее арифметическое нечётных элементов пятой строки.

var
a:array [1..5,1..5] of integer;
i,j:integer;
s:real;
begin
randomize;
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
a[i,j]:=random(15);
write(a[i,j]:6);
end;
writeln;
end;
s:=0;
for i:=1 to 5 do

if ((a[i,j] mod 2)<>0) then
s:=(sqr(a[5,1])+sqr(a[5,2])+sqr(a[5,3])+sqr(a[5,4])+sqr(a[5,5]))/5;
writeln('Среднеее арифметическое=',s);
end.




И ещё.. как определить количество максимальных элементов в массиве?
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

1. Я бы сделал так

Код: Выделить всё

for shift=-(M-1) to (M-1) do
begin
  if shift=0 then continue;
  if shift<0 then
      for i:=1 to M+shift do
        находим среднее арифметическое элементов A[i, i-shift]
  else
     for i:=1 to M-shift do
        находим среднее арифметическое элементов A[i+shift, i]
end;
2.

Код: Выделить всё

s:=0;
count:=0;
for i:=1 to N do 
  if odd(A[5,N]) then begin inc(s, A[5,N]); inc(count); end;
result:=s/count;
3. Пройти по всему массиву, найти максимальный элемент, пройти еще раз по всему массиву, найти, сколько элементов равно максимальному
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

3. Пройти по всему массиву, найти максимальный элемент, пройти еще раз по всему массиву, найти, сколько элементов равно максимальному
Имхо, можно за один проход!
завести переменную MaxCount
вначале там единичка.
MaxElement := A[1]
Проход по массиву, там, где мы сравниваем MaxElement и A

Код: Выделить всё

if A[i] > MaxElement then begin
  MaxElement := A[i]
  MaxCount := 1;  
end
else 
  if A[i] = MaxElement then then Inc(MaxCount);
всё. в конце первого прохода в MaxCount - количество максимальных элементов!
(ну, точнее количество элементов массива, равных значению максимального элемента)
ninjais
Сообщения: 15
Зарегистрирован: 09 сен 2007, 07:28

Спасибо.. с последней разобралась..
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

это надо понять как - "Миссия выполнена" ? Т.е. со всеми задачи покончено. Так?..
Аватара пользователя
Quarter
Сообщения: 4
Зарегистрирован: 24 окт 2007, 20:00

Помогите решить задачки. Пожалуйста.
1)задана последовательность символов, за которой стоит точка (в саму последовательность точка не входит ). напечатайте текст, удаливши из нево все символы, что не есть цифрами.
2)группы символов, разделены пробелами (одним или несколькими) и которые не имеют пробела в середине себя, будем называть словами. дан текст. напечатайте слова, в которых встречается мягкий знак.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Раздел "Алгоритмы", тема "Разбиение строки на слова"
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить