powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите доделать задачу, пожалуйста
17 сообщений из 17, страница 1 из 1
Помогите доделать задачу, пожалуйста
    #40122559
Pubas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Условие задачи: Ввести оценки N ученикам по K предметам. Определить и вывести на экран количество учеников, не получивших ни одной "5".
что я смог сделать:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
const n = 20; k = 10;
var
  a: array [1..n, 1..k] of integer;
  i,j,u:integer;
begin
  u:=n;
  for i := 1 to n do 
    for j := 1 to k do 
      a[i,j]:=random(5)+1;
 
  for i := 1 to n do  
    begin
      for j := 1 to k do 
        write (a[i,j], ' '); 
      writeln;
    end;

  for i:=1 to n do
    if a[i,j]=5 then u:=u-1;
    
  writeln(количество учеников, не получивших ни одной "5": ', u);
end.


Модератор: Для выделения кода есть тэг [ SRC ]
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122590
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
const int N = 20, K = 10;

Enumerable.Range(0, N).SelectMany(student => Enumerable.Range(0, K)
    .Select(subject => new { student, subject, assesment = Random.Shared.Next(2, 6) }))
    .GroupBy(x => x.student).Where(g => g.All(x => x.assesment < 5)).Select(g => g.Key)
    .ToList().ForEach(s => Console.WriteLine(s));


Надеюсь, идея понятна.
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122593
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Код: c#
1.
2.
3.
4.
5.
6.
const int N = 20, K = 10;

Enumerable.Range(0, N).SelectMany(student => Enumerable.Range(0, K)
    .Select(subject => new { student, subject, assesment = Random.Shared.Next(2, 6) }))
    .GroupBy(x => x.student).Where(g => g.All(x => x.assesment < 5)).Select(g => g.Key)
    .ToList().ForEach(s => Console.WriteLine(s));



Надеюсь, идея понятна.
Садись, два. В четверти. Эта задача решается раза в четыре короче даже на вашей богомерзкой джаве, а уж на паскале и того проще.
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122594
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pubas
что я смог сделать:

Подумайте о том, что Вам совершенно незачем хранить введённые оценки. Одной-единственной переменной - "очередная введённая оценка" - вполне достаточно, чтобы ответить на вопрос задачи.
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122597
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никанор Кузьмич
Эта задача решается раза в четыре короче даже на вашей богомерзкой джаве, а уж на паскале и того проще.

Я уверен, что на Дельфи её вообще можно решить без клавиатуры, одной только мышью, но, увы, не наградил всевышний знанием этого чудесного инструмента.
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122599
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pubas
Условие задачи: Ввести оценки N ученикам по K предметам. Определить и вывести на экран количество учеников, не получивших ни одной "5".
что я смог сделать:
const n = 20; k = 10;
var
a: array [1..n, 1..k] of integer;
i,j,u:integer;
begin
u:=n;
for i := 1 to n do
for j := 1 to k do
a[i,j]:=random(5)+1;

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

for i:=1 to n do
if a[i,j]=5 then u:=u-1;

writeln(количество учеников, не получивших ни одной "5": ', u);
end.
Добавить переменную - "количество пятерок" (к1) и массив "ученики" (а2). Считать к1 для каждого ученика, если ноль - помечать ученика в массиве учеников.
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122602
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никанор Кузьмич
Добавить переменную - "количество пятерок" (к1) и массив "ученики" (а2). Считать к1 для каждого ученика, если ноль - помечать ученика в массиве учеников.

Не маловато массивов будет? Я бы еще хотя бы полдюжины добавил :))
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122604
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если считать, что все оценки вообще случайны, то можно просто
Код: c#
1.
2.
3.
4.
5.
const int N = 20, K = 10;

Enumerable.Range(0, N)
    .Where(_ => Random.Shared.NextSingle() < Math.Pow(3f / 4, K))
    .ToList().ForEach(s => Console.WriteLine(s));
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122605
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Pubas
что я смог сделать:

Подумайте о том, что Вам совершенно незачем хранить введённые оценки. Одной-единственной переменной - "очередная введённая оценка" - вполне достаточно, чтобы ответить на вопрос задачи.

Да кстати, вообще весь цикл до конца проходить и не надо. Тех у кого появилась 5 можно сразу выкидывать и из дальнейшей проверки исключить. А если выкинули при этом последнего, то можно сразу выходить. А, поскольку на каждом предмете 1/4 в среднем будет выбывать (если оценки от 2 до 5), то кол-во итераций сразу сильно сократится.
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122646
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat, ты правда думаешь что LINQ понятно студенту, который паскаль только-только начал изучать?
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122653
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
fkthat, ты правда думаешь что LINQ понятно студенту, который паскаль только-только начал изучать?

Нет, просто коллега ущемлён дельфой и надеется, что хотя бы этот студент окажется спарринг-партнёром по плечу.
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122665
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pubas,
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
const
  n=20;
  k=10;
var
  i, j, u, c, r: integer;
begin
  u:=0;
  for i:=1 to n do begin
    c:=1;
    for j:=1 to k do begin
      r:=Random(5)+1;
      if r=5 then c:=0;
      Write(r, ' ');
    end;
    u:=u+c;
    WriteLn;
  end;
  WriteLn('без пятерок: ', u);
  ReadLn;
end.
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122671
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще задание так ни кто и не сделал:
Условие задания
Ввести оценки N ученикам по K предметам. Определить и вывести на экран количество учеников, не получивших ни одной "5".
Ввода не вижу, вижу генерацию случайного массива ) где в постановке генерация массива случайных чисел? :)
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122672
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

не подскажешь, как мне заменить Random на Read? )
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122675
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Dima T
fkthat, ты правда думаешь что LINQ понятно студенту, который паскаль только-только начал изучать?

Нет, просто коллега ущемлён дельфой и надеется, что хотя бы этот студент окажется спарринг-партнёром по плечу.

А в Дельфи есть LINQ для модальных гридов?
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122926
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Код: c#
1.
2.
3.
4.
5.
6.
const int N = 20, K = 10;

Enumerable.Range(0, N).SelectMany(student => Enumerable.Range(0, K)
    .Select(subject => new { student, subject, assesment = Random.Shared.Next(2, 6) }))
    .GroupBy(x => x.student).Where(g => g.All(x => x.assesment < 5)).Select(g => g.Key)
    .ToList().ForEach(s => Console.WriteLine(s));


Надеюсь, идея понятна.

Зачем вы запутываете автора?

Вот какая ему польза с этого исходника?

Ему что? Бежать и изучать ваш язык?
...
Рейтинг: 0 / 0
Помогите доделать задачу, пожалуйста
    #40122940
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
А в Дельфи есть LINQ для модальных гридов?

В Дельфи знают, что грид не содержит данных.

Нечто а-ля LINQ под Delphi существует уже лет двадцать. У меня личных впечатлений нет, потому что я не вижу, зачем оно надо.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите доделать задачу, пожалуйста
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (9): Анонимы (6), Yandex Bot 1 мин., Bing Bot 2 мин., Google Bot 3 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]