Нужна программа на языке Паскаль, задание: Дан список из n фамилий. Определить, содержится ли в списке указанная фамилия; если да, то указать номер, под которым она встречается в списке первый раз, если же такой фамилии нет, то добавить ее к первоначальному списку.
Исходный список неупорядочен. Новую фамилию внести в список после самой длинной фамилии.
Ответы
Ответ дал:
0
// PascalABC.NET 3.2, сборка 1457 от 29.05.2017
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadlnInteger('Количество фамилий:');
var L:=ReadSeqString('Вводите фамилии построчно:',n).ToList;
var f:=ReadlnString('Искать фамилию:');
var i:=L.FindIndex(w->w=f);
if i>=0 then Writeln('Номер в списке- ', i+1)
else begin
i:=L.Select(w->w.Length).ToArray.IndexMax;
L.Insert(i+1,f);
Writeln('Вставлена после фамилии ',L[i]);
L.Println
end
end.
Примеры
Количество фамилий: 6
Вводите фамилии построчно: Иванов
Петрова
Сидоров
Сидорчук
Ножкина
Жук
Искать фамилию: Ножкина
Номер в списке- 5
Количество фамилий: 6
Вводите фамилии построчно: Иванов
Петрова
Сидоров
Сидорчук
Ножкина
Жук
Искать фамилию: Ложкина
Вставлена после фамилии Сидорчук
Иванов Петрова Сидоров Сидорчук Ложкина Ножкина Жук
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadlnInteger('Количество фамилий:');
var L:=ReadSeqString('Вводите фамилии построчно:',n).ToList;
var f:=ReadlnString('Искать фамилию:');
var i:=L.FindIndex(w->w=f);
if i>=0 then Writeln('Номер в списке- ', i+1)
else begin
i:=L.Select(w->w.Length).ToArray.IndexMax;
L.Insert(i+1,f);
Writeln('Вставлена после фамилии ',L[i]);
L.Println
end
end.
Примеры
Количество фамилий: 6
Вводите фамилии построчно: Иванов
Петрова
Сидоров
Сидорчук
Ножкина
Жук
Искать фамилию: Ножкина
Номер в списке- 5
Количество фамилий: 6
Вводите фамилии построчно: Иванов
Петрова
Сидоров
Сидорчук
Ножкина
Жук
Искать фамилию: Ложкина
Вставлена после фамилии Сидорчук
Иванов Петрова Сидоров Сидорчук Ложкина Ножкина Жук
Ответ дал:
0
Эту версию уже начали изучать многие школы. Программы в ней короче традиционных в 3-5, и даже, бывает, в десятки раз. И Вы в вопросе не указали версию языка, которая нужна Вам. Следовательно, получили решение на той, где писать быстрее. проще и короче.
Ответ дал:
0
Turbo Pascal
Ответ дал:
0
У Вас в вопросе указано слово "список". Это серьезно. Конструирование списков и работу с ними в школах изучают на профильном уровне, потому что это работа со ссылками, что на базовом уровне наверно 90% школьников вообще не понимают.
Ответ дал:
0
Если же у Вас слово "список" означает не информационную структуру, а используется в обычном бытовом значении ("перечисление"), то реализация может быть сделана на массиве, но вставлять элемент в произвольное место - это тоже не сахарок.
Ответ дал:
0
Турбо Паскаль? Но Вы же выполняли программу не в нем, Турбо Паскаль не поймет в программе ни одной строки, кроме begin и end.
Вас заинтересует
1 год назад
5 лет назад
5 лет назад
8 лет назад
8 лет назад
8 лет назад