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

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

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

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

Даны натуральные числа K, N. Вещественные числа a1,a2...akn

Gasphord

Ученик
Регистрация
15 Окт 2019
Сообщения
9
Реакции
0
Баллы
0
Даны натуральные числа K, N. Вещественные числа a1,a2...akn

Помогите написать такой код.
 

Вложения

  • IMG_20191015_094101.webp
    IMG_20191015_094101.webp
    14.4 KB · Просмотры: 207
Помогите написать такой код.
Задачка абсолютно детская, примитивная, а потому можем только помочь отладить Ваше решение, когда оно будет выложено. Никаких "вы пишите — я скатаю" не будет.
 
Задачка абсолютно детская, примитивная, а потому можем только помочь отладить Ваше решение, когда оно будет выложено. Никаких "вы пишите — я скатаю" не будет.
Код:
uses
  System.SysUtils,
  Windows;

Var
  n,k,i,x :integer;
  max1,max2,max3,a :real;

Begin
 Readln(k,n,max1);

    for i:=2 to k do
    begin
    readln(max1);
    if a>max1 then max1:=a;
    end;

  readln(max2);
  for i:=k+2 to 2*k do
     begin
     readln(a);
     if a>max2  then max2:=a;
     end;
x:=2*k;
while x<=k*(n-1)+1 do
begin
 read(a);
x:=x+1;
end;
max3:=a;
for i:= x to k*n do
  begin
  read(a);
  if a>max3 then max3:=a;
  end;
  Writeln(max1,max2,max3);
  readln;
end.
 
Так, понятно.
Очень нездорово.
Явно бездумная компиляция из чего-то.
Ладно, давайте разберём задачку.
Итак, у нас есть последовательность вещественных чисел, которая может быть разбита на n "звеньев" по k элементов в каждом. Вот и давайте, прежде всего, зададим эти самые n и k, причем лучше в виде констант — так проще будет задать массивы.
Далее описываем переменные.
Вводим два массива: нашу последовательность длиной kn и искомую последовательность максимумов длиной n. Кроме того, зададим переменные циклов i и j.
Можно, конечно, вводить последовательность с клавиатуры, но проще и быстрее воспользоваться генератором случайных чисел, причём следует использовать команду Random без параметров, поскольку последовательность по условиям задачи вещественная, а не целая. Результат выводим на экран.
Дальше обычным образом ищем максимумы "звеньев" и их тоже выводим.
Программа и результат представлены ниже. Сразу оговорюсь: у меня обычный Turbo (Free) Pascal, у Вас же, похоже, ABC. За неумелки последнего — не отвечаю. Извините.
Код:
Const
 n=4;
 k=3;

Var
 A:Array[1..n*k] of Real;
 Max:Array[1..n] of Real;
 i,j:Integer;

Begin
 Randomize;
 Writeln('Initial array:');
 for i:=1 to n*k do
  begin
   A[i]:=Random*99;
   Write(A[i]:8:3);
  end;
 Writeln;
 Writeln;
 Writeln('Maximal values in ',k,'-component groups:');
 for i:=1 to n do Max[i]:=0;
 for i:=1 to n do
  for j:=1 to k do
   if A[j+k*(i-1)]>Max[i] then Max[i]:=A[j+k*(i-1)];
 for i:=1 to n do Write(Max[i]:8:3);
 Readln
End.
 

Вложения

  • AAA01.webp
    AAA01.webp
    9.3 KB · Просмотры: 112
Спасибо огромное за объяснение, очень сильно помогли. Попробую сделать сам,без массивов. Еще раз спасибо.
Не могли вы бы посоветовать какую-нибудь литературу, пособия и тд, для новичка ("программирую" на делфи 10)
Только начал и хочу научиться хотя бы азам написания кода.
 
Не могли вы бы посоветовать какую-нибудь литературу, пособия и тд, для новичка ("программирую" на делфи 10) Только начал и хочу научиться хотя бы азам написания кода.
На все подобные вопросы отвечаю одинаково: начните с любых пособий-справочников, благо их в Сети полнО, а дальше — главное: практика, практика и ещё раз практика!
Попробую сделать сам,без массивов.
Массивы-то чем Вам не угодили? :)
 
На все подобные вопросы отвечаю одинаково: начните с любых пособий-справочников, благо их в Сети полнО, а дальше — главное: практика, практика и ещё раз практика!Массивы-то чем Вам не угодили? :)
Просто я совершенно не умею работать с массивами, и хочу попытаться решить эту задачу без массивов.Спасибо за совет. И еще вопрос, сколько лет вы уже занимаетесь программированием, я так понял что уже больше 11 лет?
 
Просто я совершенно не умею работать с массивами, и хочу попытаться решить эту задачу без массивов.
Решение неверное: тупиковый путь в никуда. Не умеете работать с массивами? Так учитесь, черт побери, с ними работать, тем более, что ничего сложного в этом нет. А если завтра Вам понадобится работать, скажем, с файлами, то тоже скажете — не умею, попытаюсь обойтись без них? Нет, так нельзя.
Спасибо за совет.
Да не за что...
И еще вопрос, сколько лет вы уже занимаетесь программированием, я так понял что уже больше 11 лет?
"Уже больше" 41 года.
 
Назад
Сверху