• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Три задачи на Паскале

  • Автор темы Автор темы Kapri
  • Дата начала Дата начала

Kapri

Ученик
Регистрация
6 Фев 2011
Сообщения
2
Реакции
0
Баллы
0
ПОМОГИТЕ ПЛИЗ
Найти сумму квадратов первых n натуральных чисел (n вводится с клавиатуры).

A(N) Найти среднее геометрическое элементов массива A ai>0, N≤50


P (N,N) Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали. Отпечатать полученную матрицу в общепринятом виде N≤ 15

[MOD2]Kapri, у нас не принято лезть в чужие темы, тем более с совершенно непохожими задачками. [/MOD2]
 
А что, попытаться самостоятельно решить эти дурацкие школьные задачки - совсем желания нет? Ну да, вывалить на форум - оно, конечно, проще. Но у нас подобное не очень поощряется.
 
1 программа:
Код:
Uses Crt;
Var a,i,n:longint;  
begin
wRITELN('Вводим кол-во цифр сумму цифр сумму которых вы которых вы вы хотите найти');
Readln(n);           
a:=0;
For i:=1 to n do
a:=a+sqr(i);       
Writeln(a);
Readkey;
End.
(выводится отрицательное значение при 10000 и выше)
 
3 задача

Kapri поясни как это в общепринятом виде, ведь когда массив выведется,
все числа, кроме главной диагонали, будут нулями
 
Kapri поясни как это в общепринятом виде, ведь когда массив выведется,
все числа, кроме главной диагонали, будут нулями
Это еще с какого перепугу?
Показываю, что требуется:
Код:
До:
[FONT=Courier New] 2 [COLOR=Red]14[/COLOR]  6  7
[COLOR=Red]28[/COLOR]  1 12  8
 0  6  3 [COLOR=Red]36[/COLOR]
[COLOR=Red]75[/COLOR] 18  2  9[/FONT]

После:
[FONT=Courier New][COLOR=Red]14[/COLOR]  2  6  7
 1 [COLOR=Red]28[/COLOR] 12  8
 0  6 [COLOR=Red]36[/COLOR]  3
 9 18  2 [COLOR=Red]75[/COLOR][/FONT]

Красным цветом выделены максимальные элементы строк, которые надлежит найти и которые требуется заменить элементами главной диагонали и наоборот.
 
Что такое среднее геометрическое и какая у него формула

Назвался программером - подружись с гуглом! Ваш модератор.
 
A(N) Найти среднее геометрическое элементов массива A ai>0, N≤50
Ладно, тут задачка с подковыркой - желательно избежать появления очень больших чисел. Потому выложу своё решение:
Код:
Var
 N:Byte;
 A:Array[1..50] of Real;
 S:Real;
 i:Integer;
BEGIN
 Write('N= ');
 ReadLn(N);
 Randomize;
 S:=0;
 For i:=1 to N do
  begin
   A[i]:=(Random+0.1)*90;
   Write(A[i]:8:3);
   S:=S+Ln(A[i]);
  end;
 WriteLn;
 WriteLn('Geometric mean is ',Exp(S/N):8:3);
 ReadLn;
END.
 
P (N,N) Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали. Отпечатать полученную матрицу в общепринятом виде N≤ 15
Выложенный код, как содержащий ошибки, мною УДАЛЕН. Правильное решение задачи приведено в #11.
Vladimir_S.
 
Для массивов:
Размер - количественная величина, указывающая на общее число элементов.
Размерность - величина, указывающая на значение одного параметра (число строк или число столбцов)
 
MrПрограМист, подскажите, пожалуйста, что мне с Вами делать? Сколько можно повторять слова о недопустимости выкладывания неотлаженных программ? Всё как об стенку горох - опять под видом решения выложен абсолютно неверно работающий код! Ведь вот казалось бы - я Вам показал в (#5) на примере, как должен выглядеть результат работы программы. Напомню:
Код:
До:
[FONT=Courier New] 2 [COLOR=Red]14[/COLOR]  6  7
[COLOR=Red]28[/COLOR]  1 12  8
 0  6  3 [COLOR=Red]36[/COLOR]
[COLOR=Red]75[/COLOR] 18  2  9[/FONT]

После:
[FONT=Courier New][COLOR=Red]14[/COLOR]  2  6  7
 1 [COLOR=Red]28[/COLOR] 12  8
 0  6 [COLOR=Red]36[/COLOR]  3
 9 18  2 [COLOR=Red]75[/COLOR][/FONT]

Теперь посмотрим, что дает с этим же примером Ваша так называемая программа:
Код:
До:
[FONT=Courier New] 2 [COLOR=Red]14[/COLOR]  6  7
[COLOR=Red]28[/COLOR]  1 12  8
 0  6  3 [COLOR=Red]36[/COLOR]
[COLOR=Red]75[/COLOR] 18  2  9[/FONT]

После:
[FONT=Courier New][COLOR=Red]14 14[/COLOR]  6  7
[COLOR=Red]28 [/COLOR][COLOR=Red]28[/COLOR] 12  8
 0  6 [COLOR=Red]36[/COLOR]  3
[COLOR=Red]75[/COLOR] 18  2 [COLOR=Red]75[/COLOR][/FONT]
И ЭТО Вы называете перестановкой элементов?
К тому же - по-прежнему, несмотря на неоднократные указания, реализован крайне неудобный полностью слепой (без подсказок) ввод исходных данных. Просто из ослиного упрямства? Самоутверждаться изволите?
Вот теперь мне придется заняться этой идиотской задачей, что совершенно не входило в мои планы. Но репутацию форума надо поддерживать.

Так всё-таки - не посоветуете, что с Вами делать? Сразу гнать в три шеи или еще дать (последний) шанс?
 
Как обещал, вот ПРАВИЛЬНОЕ решение задачи:
Код:
Var
 a:array[1..15,1..15] of integer;
 k:array[1..15] of Byte;
 i,j,n,max,x:integer;
BEGIN
 Write('Vvedite razmernost massiva ');
 Readln(n);
 for i:=1 to n do
  for j:=1 to n do
   begin
    write('A[',i:2,',',j:2,']= ');
    readln(a[i,j]);
   end;
 for i:=1 to n do
  begin
   for j:=1 to n do
    write(a[i,j]:5);
   writeln;
  end;
 writeln;

 for i:=1 to n do
  begin
   max:=a[i,1];
   k[i]:=1;
   for j:=1 to n do
    begin
     if a[i,j]>max then
      begin
       max:=a[i,j];
       k[i]:=j;
      end;
    end;
  end;

 for i:=1 to n do
  begin
   x:=a[i,i];
   a[i,i]:=a[i,k[i]];
   a[i,k[i]]:=x;
  end;

 for i:=1 to n do
  begin
   for j:=1 to n do
    write(a[i,j]:5);
   writeln;
  end;

 readln;
END.
Галиматья от MrПрограМист удалена.
 
Назад
Сверху