0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 13
1

Строки: вывести фамилию, имя и отчество студента, у которого самое короткое отчество

09.04.2018, 23:15. Показов 3621. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
С клавиатуры вводится текст, который представляет собой список студентов группы с указанием фамилии, имени и отчества студента, которые разделены только одним пробелом; в качестве разделителя элементов списка используется запятая с пробелом: «Фамилия1 Имя1 Отчество1, Фамилия2 Имя2 Отчество2, …, ФамилияN ИмяN ОтчествоN».
Выведите на экран фамилию, имя и отчество студента, у которого самое короткое отчество.
Пример
Ввод: Иванов Иван Антонович, Герлюк Степан Петрович, Дудко Анна Николаевна, Тимошенко Ольга Сергеевна .
Результат: Герлюк Степан Петрович
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2018, 23:15
Ответы с готовыми решениями:

Вывести имя, отчество и количество букв в фамилии
Вывести имя, отчество и количество букв в фамилии

Строки: ввести фамилию, имя и отчество, вывести имя в столбик
Ввести фамилию, имя и отчество как одно данное строкового типа. Вывести имя в столбик.

Табель успеваемости группы студентов содержит следующие сведения: номер по порядку, фамилию, имя, отчество студента, оценки по каждому экзамену
Табель успеваемости группы студентов содержит следующие сведения: номер по порядку, фамилию, имя,...

crt - Вывести фамилию, имя, отчество в центре экрана
Точно задания не помню, но вроде бы так: "Вывести фамилию, имя, отчество в центре экрана. Каждое...

6
5077 / 2649 / 2349
Регистрация: 10.12.2014
Сообщений: 10,026
10.04.2018, 06:37 2
Pascal
1
2
3
4
5
begin
  var s := ReadLnString;
  var d := '.,'.ToCharArray;
  s.ToWords(d).Select(w->w.Trim).MinBy(w->w.ToWords(' ')[2].Length).PrintLn;
end.
0
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 13
10.04.2018, 08:26  [ТС] 3
а можно написать программу на более понятном языке ну там используя Writeln, Readln, if, while, for ну и в таком духе, а то я даже не понимаю что написано. И препод не поймет чего все проги в одном стиле а это особенная.
0
5077 / 2649 / 2349
Регистрация: 10.12.2014
Сообщений: 10,026
10.04.2018, 08:32 4
А зачем? Здесь и так две строки лишние…
Мы многое в этом мире не понимаем. Но принимаем как есть и пользуемся ;–)

Учиться ни когда не поздно!

Я всегда привожу вот эту ссылку, как пример: http://bash.im/quote/402378
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,429
Записей в блоге: 8
10.04.2018, 09:30 5
Цитата Сообщение от tima202 Посмотреть сообщение
Выведите на экран фамилию, имя и отчество студента, у которого самое короткое отчество
Пол студента на этот раз не важен? Или опять только студента-парня?
0
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 13
10.04.2018, 18:03  [ТС] 6
Цитата Сообщение от volvo Посмотреть сообщение
Пол студента на этот раз не важен? Или опять только студента-парня?
уже не важен.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,429
Записей в блоге: 8
10.04.2018, 20:57 7
Лучший ответ Сообщение было отмечено tima202 как решение

Решение

Ну, тогда вот так, к примеру (я изменил входную строку, чтобы было два имени с минимальной длиной отчества) :
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var 
  i, vi : integer;
  s, st, min_s : string;
  j, len : integer;
  min_len : integer;
begin
  s := 'Иванов Иван Антонович, Герлюк Степан Петрович, Дудко Анна Николаевна, Тимошенко Ольга Петровна';
  // readln(s); 
  s := s + ',';
  i := 1;
  min_len := Length(s);
  repeat
    vi := PosEx(',', s, i);
    if vi > 0 then
    begin
      st := Trim(Copy(s, i, vi - i)); // очередные Ф. И. О.
      Len := Length(st);
      j := 0;
      while st[Len - j] <> ' ' do Inc(j); // Ищем последний пробел
      if j = min_len then // Если длина отчества (это как раз j) равна предыдущему минимуму - то добавляем текущие Ф.И.О. к строке - результату
        min_s := min_s + NewLine + st
      else if j < min_len then // если длина отчества меньше прежнего минимума - то запоминаем новый минимум и только эти Ф.И.О. добавляем в строку-результат
      begin
        min_s := st;
        min_len := j;
      end;
    end;
    i := vi + 1;
  until i > Length(s);
  writeln(min_s); // собственно, выводим результат.
end.
1
10.04.2018, 20:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2018, 20:57
Помогаю со студенческими работами здесь

Вывести в файл фамилию, имя и отчество исполнителя и результат вычисления математического выражения
Нужно написать программу в паскале, которая вводит фамилию имя и отчество и анализирует из...

в текстовом файле дан текст: фамилия, имя, отчество. В новый текстовый файл вывести самое длинное число
в текстовом файле дан текст: фамилия, имя, отчество. В новый текстовый файл вывести самое длинное...

С клавиатуры вводится строка "Фамилия Имя Отчество". Изменить вывод строки на "Имя Отчество Фамилия"
С клавиатуры вводится строка &quot;Фамилия Имя Отчество&quot;. Изменить вывод строки на &quot;Имя Отчество...

Ввести фамилию, имя и отчество в одну строковую переменную
Ввести фамилию, имя и отчество в одну строковую переменную. Определить длину строки.Вывести самое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru