С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
19 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 149
1

Определить и вывести на экран множество символов входящих только в имя, отчество или фамилию

21.04.2013, 12:49. Показов 3110. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Определить и вывести на экран множество символов входящих только в имя, отчество или фамилию, введённые с клавиатуры.
Я написала программу,но она у меня выводит символы,которые одновременно входят в имя,фамилию и отчество.
А как сделать,чтобы он выводил символы входящие только в имя или в отчество или в фамилию?Можно сделать это с помощью меню?
Вот код программы:
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
 program mnozestva;
uses crt;
 
Type Zp=Record
     Name,Fam,Otch:string[15];
     End;
Var mn:set of char;
    st:zp;
    i:integer;
 
Begin
clrscr;
    write('Имя: ');readln(st.name);
    write('Отчество: ');readln(st.otch);
    write('Фамилия: ');readln(st.fam);
    mn:=[];
    For i:=1 to Length(st.name) do
     mn:=mn+[st.name[i]];
    For i:=1 to Length(st.otch) do
     mn:=mn+[st.otch[i]];
    For i:=1 to Length(st.fam) do
     mn:=mn+[st.fam[i]];
    For i:=0 to 255 do
     if chr(i) in mn then write(chr(i):2);
End.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2013, 12:49
Ответы с готовыми решениями:

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

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

Дана строка, содержащая фамилию, имя и отчество. Вывести на экран строку, содержащую фамилию и инициалы
Дана строка, содержащая фамилию, имя и отчество. Вывести на экран строку, содержащую фамилию и...

Определить и вывести на экран множество символов входящих в диапазон '0'.'9'
Определить и вывести на экран множество символов входящих в диапазон '0'..'9' и не входящих в...

14
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
21.04.2013, 13:43 2
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
32
33
34
35
36
37
38
39
40
program mnozestva;
uses crt;
Type Zp=Record
     Name,Fam,Otch:string[15];
     End;
Var mf,mi,mo,mn:set of char;
    st:zp;
    i:integer;
Begin
clrscr;
write('Имя: ');readln(st.name);
write('Отчество: ');readln(st.otch);
write('Фамилия: ');readln(st.fam);
mi:=[];
For i:=1 to Length(st.name) do
mi:=mi+[st.name[i]];
mo:=[];
For i:=1 to Length(st.otch) do
mo:=mn+[st.otch[i]];
mf:=[];
For i:=1 to Length(st.fam) do
mf:=mf+[st.fam[i]];
mn:=mi-mo-mf;
if mn=[] then writeln('В имени нет оригинальных символов')
else writeln('Символы только в имени');
For i:=32 to 255 do
if chr(i) in mn then write(chr(i):2);
writeln;
mn:=mo-mi-mf;
if mn=[] then writeln('В отчестве нет оригинальных символов')
else writeln('Символы только в отчестве');
For i:=32 to 255 do
if chr(i) in mn then write(chr(i):2);
writeln;
mn:=mf-mi-mo;
if mn=[] then writeln('В фамилии нет оригинальных символов')
else writeln('Символы только в фамилии');
For i:=32 to 255 do
if chr(i) in mn then write(chr(i):2);
End.
1
142 / 148 / 116
Регистрация: 15.11.2012
Сообщений: 537
Записей в блоге: 2
21.04.2013, 13:43 3
Например по "имени", набрать буквы имени в одно множество, а фамилию и отчество в другое и потом из 2-го вычесть первое
0
19 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 149
21.04.2013, 14:11  [ТС] 4
Puporev, спасибо огромное! только почему какое бы отчество я не написала,программа выдаёт,что в отчестве нет оригинальных символов?
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
21.04.2013, 14:25 5
Опечатка в строке 19, нужно
Pascal
1
2
3
mo:=[];
For i:=1 to Length(st.otch) do
mo:=mo+[st.otch[i]];
Добавлено через 45 секунд
Исправить mn на mo
1
19 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 149
21.04.2013, 14:36  [ТС] 6
Puporev, всё равно что-то не то...теперь в каждом пункте косяки. не могу понять почему так...
например:
имя:анастасия
отчество: игоревна
фамилия: олешко
Символы в имени:
с т я
Символы в отчестве:
в г р
Символы в фамилии:
к л ш
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
21.04.2013, 14:43 7
Так если символы есть в разных словах, то они исключаются, например символ а
В задании написано
Цитата Сообщение от Юлия Крамар Посмотреть сообщение
множество символов входящих только в имя, отчество или фамилию
Добавлено через 2 минуты
Введите все разные, типа
имя абвг
отчество дежз
фамилия ийкл
1
19 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 149
21.04.2013, 14:45  [ТС] 8
Puporev, а дада!всё понятно,глупость спросила,спасибо!)
Извените,а вы не могли бы мне еще объяснить,как можно оформить эту программу с меню?
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
21.04.2013, 14:46 9
А что Вы хотите иметь в меню?
0
19 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 149
21.04.2013, 14:50  [ТС] 10
Puporev, например,0-выход;1-запись множества(ввод с клавиатуры имени,отчества и фамилии);2-вывод символов входящих в имя;3-вывод символов входящих в отчество;4-вывод символов входящих в фамилию.
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
21.04.2013, 15:38 11
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
program mnozestva;
uses crt;
Type Zp=Record
     Name,Fam,Otch:string[15];
     End;
     Mnz=set of char;
var f:boolean;
procedure vvod(var st:Zp;var mi,mo,mf:Mnz);
var i:byte;
begin
clrscr;
write('Имя: ');readln(st.name);
write('Отчество: ');readln(st.otch);
write('Фамилия: ');readln(st.fam);
mi:=[];
For i:=1 to Length(st.name) do
mi:=mi+[st.name[i]];
mo:=[];
For i:=1 to Length(st.otch) do
mo:=mo+[st.otch[i]];
mf:=[];
For i:=1 to Length(st.fam) do
mf:=mf+[st.fam[i]];
f:=true;
end;
procedure imya(var mi:Mnz;mo,mf:Mnz);
var mn:Mnz;
    i:byte;
begin
clrscr;
if not f then
 begin
  write('Множество еще не создано, вкрнитесь к пункту 1');
  readln;
  exit
 end;
mn:=mi-mo-mf;
if mn=[] then writeln('В имени нет оригинальных символов')
else writeln('Символы только в имени');
For i:=32 to 255 do
if chr(i) in mn then write(chr(i):2);
readln
end;
procedure otchestvo(var mo:Mnz;mi,mf:Mnz);
var mn:Mnz;
    i:byte;
begin
clrscr;
if not f then
 begin
  write('Множество еще не создано, вкрнитесь к пункту 1');
  readln;
  exit
 end;
mn:=mo-mi-mf;
if mn=[] then writeln('В отчестве нет оригинальных символов')
else writeln('Символы только в отчестве');
For i:=32 to 255 do
if chr(i) in mn then write(chr(i):2);
readln
end;
procedure familia(var mf:Mnz;mi,mo:Mnz);
var mn:Mnz;
    i:byte;
begin
clrscr;
if not f then
 begin
  write('Множество еще не создано, вкрнитесь к пункту 1');
  readln;
  exit
 end;
mn:=mf-mi-mo;
if mn=[] then writeln('В фамилии нет оригинальных символов')
else writeln('Символы только в фамилии');
For i:=32 to 255 do
if chr(i) in mn then write(chr(i):2);
readln
end;
 
Var mf,mi,mo,mn:Mnz;
    st:zp;
    w:integer;
Begin
clrscr;
repeat
clrscr;
writeln('Выберите действие:');
writeln('0-выход');
writeln('1-запись множеств');
writeln('2-вывод множества имя');
writeln('3-вывод множества отчество');
writeln('4-вывод множества фамилия');
repeat
readln(w);
until w in [0..4];
case w of
0:exit;
1:vvod(st,mi,mo,mf);
2:imya(mi,mo,mf);
3:otchestvo(mo,mi,mf);
4:familia(mf,mi,mo);
end;
until w=0;
End.
1
19 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 149
21.04.2013, 16:16  [ТС] 12
Puporev, Спасибо огромное Вам!!!
Можно еще пару воспросов задам. Можно подробнее о типе boolean?Почему его берем и в 24 строке уточняем,что f:=true ?
И почему переменная i от 32 до 255 ?
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
21.04.2013, 16:31 13
Переменная f:boolean; фиксирует что мы ввели строку и создали множества, иначе без нее,если сразу выберете в меню пункты 2..4, то программа вылетит с ошибкой.
кстати ее нужно инициировать, для чего перед строкой 86 вставьте
Pascal
1
f:=false;
Цитата Сообщение от Юлия Крамар Посмотреть сообщение
Можно подробнее о типе boolean?
Это уж сами читайте и учите.

Добавлено через 1 минуту
Цитата Сообщение от Юлия Крамар Посмотреть сообщение
почему переменная i от 32 до 255 ?
Потому что клавиши с кодами до 32 служебные и символов разумных не имеют
0
19 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 149
21.04.2013, 16:33  [ТС] 14
Puporev, Спасибо!!!
Вот сижу читаю про тип boolean. Мало как-то материала.
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
21.04.2013, 17:22 15
А что там писать. Всего 2 значения true=да и false=нет
0
21.04.2013, 17:22
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.04.2013, 17:22
Помогаю со студенческими работами здесь

Определить и вывести на экран множество символов входящих одновременно в обе строки g и f
Здравствуйте, мне нужно решить следующую задачу: Ввести две строки g и f. Определить и вывести...

Определить и вывести на экран множество символов входящих одновременно в обе строки
Ввести две строки g и f. Определить и вывести на экран множество символов входящих одновременно в...

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru