Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для Махалов
4 / 4 / 0
Регистрация: 28.12.2012
Сообщений: 23

Написать программу, чтобы при вводе фамилии выводился номер телефонов и наоборот

08.01.2013, 22:16. Показов 2801. Ответов 8
Метки faq+ (Все метки)

Студворк — интернет-сервис помощи студентам
Дано 30 человек с номерами телефонов, написать программу для того чтобы при вводе фамилии выводился номер телефонов и наоборот. Подскажите как прописать условие для этой программы?Заранее спасибо))
Matlab M
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
clc
clear
TB(1)= struct('Family','Путин','Name','Владимир','Number','11111')
TB(2)= struct('Family','Медведев','Name','Анатолий','Number','22222')
TB(3)= struct('Family','Емельяненко','Name','Федор','Number','33333')
TB(4)= struct('Family','Махалов','Name','Владимир','Number','44444')
TB(5)= struct('Family','Дарт','Name','Вэйдер','Number','555555')
TB(6)= struct('Family','Крамер','Name','Гаусс','Number','66666')
TB(7)= struct('Family','Коши','Name','Матан','Number','77777')
TB(8)= struct('Family','Шекспир','Name','Уильям','Number','88888')
TB(9)= struct('Family','Чехов','Name','Антон','Number','99999')
TB(10)= struct('Family','Попов','Name','Андрей','Number','12345')
TB(11)= struct('Family','Гендельф','Name','Гендельф','Number','54321')
TB(12)= struct('Family','Шойгу','Name','Сергей','Number','12346')
TB(13)= struct('Family','Пилоян','Name','Карлен','Number','12347')
TB(14)= struct('Family','Бортникова','Name','Анна','Number','12348')
TB(15)= struct('Family','Письменный','Name','Владимир','Number','12349')
TB(16)= struct('Family','Устный','Name','Владимир','Number','12344')
TB(17)= struct('Family','Продольный','Name','Владимир','Number','123414')
TB(18)= struct('Family','Поперечный','Name','Владимир','Number','11112')
TB(19)= struct('Family','Черный','Name','Эдик','Number','11113')
TB(20)= struct('Family','Белый','Name','Паша','Number','11114')
TB(21)= struct('Family','Пореченков','Name','Александр','Number','11115')
TB(22)= struct('Family','Васянин','Name','Вася','Number','11116')
TB(23)= struct('Family','Петянин','Name','Петя','Number','11117')
TB(24)= struct('Family','Гильберт','Name','Владимир','Number','11118')
TB(25)= struct('Family','Сталоне','Name','Сильвестр','Number','11119')
TB(26)= struct('Family','Хаус','Name','Доктор','Number','22221')
TB(27)= struct('Family','Гейтс','Name','Билл','Number','22223')
TB(28)= struct('Family','Стинг','Name','Стинг','Number','22224')
TB(29)= struct('Family','Гага','Name','Леди','Number','22225')
TB(30)= struct('Family','Сердючка','Name','Верка','Number','22226')
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.01.2013, 22:16
Ответы с готовыми решениями:

Известны фамилии сотрудников, инициалы, номера телефонов. Найти номер телефона по фамилии и инициалам владельца
помогите с Исходником. Известны фамилии сотрудников, инициалы, номера телефонов. Найти номер телефона по фамилии и инициалам владельца.

Написать программу которая при вводе шестизначного числа определяла счастливый номер билета ли нам выпал
Условие: Пользователь вводит шестизначное число, определить: сумма первых 3 десятичных цифр равна ли сумме 3 последних десятичных цифр. ...

Написать программу, запрашивающую пароль у пользователя, чтобы при вводе пароля отображались звездочки
Здравствуйте. Я тут поискал в форуме и в гугл поискал. Но не нашел нужное. Может кто то знает как осуществить ввод пароля на С++ и сделать...

8
49 / 49 / 3
Регистрация: 07.12.2012
Сообщений: 201
Записей в блоге: 1
09.01.2013, 03:43
Присоединяюсь к этому вопросу как осуществлять поиск по структуре без циклов?
1
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
09.01.2013, 09:53
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Hideo_Kuze Посмотреть сообщение
как осуществлять поиск по структуре без циклов
почти уверен, что никак. Да и зачем? В данном случае цикл простой и короткий:
Matlab M
1
2
3
4
5
6
7
tmplt = input('family: ', 's');
for i=1:size(TB, 2)
    if strcmp(TB(i).Family, tmplt);
        disp(TB(i).Number);
        break;
    end
end
3
 Аватар для Махалов
4 / 4 / 0
Регистрация: 28.12.2012
Сообщений: 23
09.01.2013, 12:39  [ТС]
Добавлено через 10 минут
vital792, огромное спасибо! а как обратный поиск сделать? т.е по номеру фамилию найти?что в цикле поменять?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
09.01.2013, 12:49
поменять местами названия полей Family и Number
0
 Аватар для Махалов
4 / 4 / 0
Регистрация: 28.12.2012
Сообщений: 23
09.01.2013, 14:45  [ТС]
Все готово всем спасибо вот полная работающая программа!!!)))
Matlab M
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
clc
clear
TB(1)= struct('Family','Путин','Name','Владимир','Number','11111');
TB(2)= struct('Family','Медведев','Name','Анатолий','Number','22222');
TB(3)= struct('Family','Емельяненко','Name','Федор','Number','33333');
TB(4)= struct('Family','Махалов','Name','Владимир','Number','44444');
TB(5)= struct('Family','Дарт','Name','Вэйдер','Number','555555');
TB(6)= struct('Family','Крамер','Name','Гаусс','Number','66666');
TB(7)= struct('Family','Коши','Name','Матан','Number','77777');
TB(8)= struct('Family','Шекспир','Name','Уильям','Number','88888');
TB(9)= struct('Family','Чехов','Name','Антон','Number','99999');
TB(10)= struct('Family','Попов','Name','Андрей','Number','12345');
TB(11)= struct('Family','Гендельф','Name','Гендельф','Number','54321');
TB(12)= struct('Family','Шойгу','Name','Сергей','Number','12346');
TB(13)= struct('Family','Пилоян','Name','Карлен','Number','12347');
TB(14)= struct('Family','Бортникова','Name','Анна','Number','12348');
TB(15)= struct('Family','Письменный','Name','Владимир','Number','12349');
TB(16)= struct('Family','Устный','Name','Владимир','Number','12344');
TB(17)= struct('Family','Продольный','Name','Владимир','Number','123414');
TB(18)= struct('Family','Поперечный','Name','Владимир','Number','11112');
TB(19)= struct('Family','Черный','Name','Эдик','Number','11113');
TB(20)= struct('Family','Белый','Name','Паша','Number','11114');
TB(21)= struct('Family','Пореченков','Name','Александр','Number','11115');
TB(22)= struct('Family','Васянин','Name','Вася','Number','11116');
TB(23)= struct('Family','Петянин','Name','Петя','Number','11117');
TB(24)= struct('Family','Гильберт','Name','Владимир','Number','11118');
TB(25)= struct('Family','Сталоне','Name','Сильвестр','Number','11119');
TB(26)= struct('Family','Хаус','Name','Доктор','Number','22221');
TB(27)= struct('Family','Гейтс','Name','Билл','Number','22223');
TB(28)= struct('Family','Стинг','Name','Стинг','Number','22224');
TB(29)= struct('Family','Гага','Name','Леди','Number','22225');
TB(30)= struct('Family','Сердючка','Name','Верка','Number','22226');
disp('Введите фамилию абонента')
tmplt = input('family: ', 's');
for i=1:size(TB, 2)
    if strcmp(TB(i).Family, tmplt);
        disp(TB(i).Number)
         break;
           end
end
 disp('Введите номер абонента')
tmpln = input('number: ', 's');
for i=1:size(TB, 2)
    if strcmp(TB(i).Number, tmpln);
        disp(TB(i).Family)
         break;
    end
end
Добавлено через 50 минут
vital792, извиняюсь может за некоторую наглость но не могли бы вы помочь подредактировать следующую программу? Дан текст имеющий вид:"d1-d2+d3-d4....", где цифры-натуральные.Вычислить записанную в тексте сумму. Я набросал примерную программу но вот что то не идет....Пожалуйста подскажите, в чем дело?

//Зосима: уже есть такая тема: Вычислить записанную в тексте алгебраическую сумму //
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
09.01.2013, 15:11
Махалов, а еще если учесть, что в фамилии нет цифр можно определить что именно вводится телефон или фамилия
Кроме того добавил пару плюшек - сообщение если номер/фамилия не найдены, игнорирование регистра при вводе фамилии.
Matlab M
clear, clc
 
TB(1)= struct('Family','Путин','Name','Владимир','Number','11111');
TB(2)= struct('Family','Медведев','Name','Анатолий','Number','22222');
TB(3)= struct('Family','Емельяненко','Name','Федор','Number','33333');
TB(4)= struct('Family','Махалов','Name','Владимир','Number','44444');
TB(5)= struct('Family','Дарт','Name','Вэйдер','Number','555555');
TB(6)= struct('Family','Крамер','Name','Гаусс','Number','66666');
TB(7)= struct('Family','Коши','Name','Матан','Number','77777');
TB(8)= struct('Family','Шекспир','Name','Уильям','Number','88888');
TB(9)= struct('Family','Чехов','Name','Антон','Number','99999');
TB(10)= struct('Family','Попов','Name','Андрей','Number','12345');
TB(11)= struct('Family','Гендельф','Name','Гендельф','Number','54321');
TB(12)= struct('Family','Шойгу','Name','Сергей','Number','12346');
TB(13)= struct('Family','Пилоян','Name','Карлен','Number','12347');
TB(14)= struct('Family','Бортникова','Name','Анна','Number','12348');
TB(15)= struct('Family','Письменный','Name','Владимир','Number','12349');
TB(16)= struct('Family','Устный','Name','Владимир','Number','12344');
TB(17)= struct('Family','Продольный','Name','Владимир','Number','123414');
TB(18)= struct('Family','Поперечный','Name','Владимир','Number','11112');
TB(19)= struct('Family','Черный','Name','Эдик','Number','11113');
TB(20)= struct('Family','Белый','Name','Паша','Number','11114');
TB(21)= struct('Family','Пореченков','Name','Александр','Number','11115');
TB(22)= struct('Family','Васянин','Name','Вася','Number','11116');
TB(23)= struct('Family','Петянин','Name','Петя','Number','11117');
TB(24)= struct('Family','Гильберт','Name','Владимир','Number','11118');
TB(25)= struct('Family','Сталоне','Name','Сильвестр','Number','11119');
TB(26)= struct('Family','Хаус','Name','Доктор','Number','22221');
TB(27)= struct('Family','Гейтс','Name','Билл','Number','22223');
TB(28)= struct('Family','Стинг','Name','Стинг','Number','22224');
TB(29)= struct('Family','Гага','Name','Леди','Number','22225');
TB(30)= struct('Family','Сердючка','Name','Верка','Number','22226');
 
 
tmpln = input('Введите фамилию или номер: ', 's');
isntfind = true; % устанавливаем флаг - абонент не найден
if isempty(str2num(tmpln)) % если цифр нет - ищем фамилию
    for i=1:size(TB, 2)
        if strcmpi(TB(i).Family, tmpln);
            disp(TB(i).Number)
            isntfind = false; % сбрасываем флаг
            break;
        end
    end
else
    for i=1:size(TB, 2)
        if strcmp(TB(i).Number, tmpln);
            disp([TB(i).Family,' ' ,TB(i).Name])
            isntfind = false; % сбрасываем флаг
            break;
        end
    end
end
 
if isntfind
    disp('Абонент не найден... :('),
end
1
 Аватар для Махалов
4 / 4 / 0
Регистрация: 28.12.2012
Сообщений: 23
09.01.2013, 15:20  [ТС]
Зосима, Cool!!!
0
536 / 523 / 38
Регистрация: 13.03.2011
Сообщений: 728
11.01.2013, 01:13
Matlab M
1
2
tmpln = input('Введите фамилию или номер: ', 's');
TB( strcmp({TB.Number}, tmpln) ).Family
Заменив strcmp на strfind, можно получить поиск по части строки.

Добавлено через 4 минуты
Вот круть получилась!
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
tmpln = input('Введите фамилию или номер: ', 's');
fieldSearch = '';
fieldResult = '';
if isempty(str2num(tmpln)) % если цифр нет - ищем фамилию
   fieldSearch = 'Family';
   fieldResult = 'Number';
else
   fieldSearch = 'Number';
   fieldResult = 'Family';
end
 
TB( strcmp({TB.(fieldSearch)}, tmpln) ).(fieldResult)
Добавлено через 29 минут
И ещё.
Индексы всех элементов в массиве структур, которые соответствуют заданным условиям, можно запомнить так:
Matlab M
1
checkedIndexes = find(strcmp({TB.(fieldSearch)}, tmpln));
В этом случае для выбранных элементов можно вывести всё: и фамилию, и имя, и номер.
Вдруг кому пригодится.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.01.2013, 01:13
Помогаю со студенческими работами здесь

Сделать так чтобы работа программы завершалась при вводе фамилии Done
#include<stdio.h> #include<conio.h> #define FNAME "c:\\phone.txt\0" // im'ia faily void main() { char fname = FNAME; ...

Как сделать так, чтобы при вводе фамилии в TextBox выдавало список?
Как сделать что бы при вводе какого-то значения (фамилии) в TextBox выдавало список (составленный вручную)

Создать базу, чтобы при вводе фамилии или даты рождения, выводились данные о человеке
база сотрудников. О каждом сотруднике фамилия, имя, пол, паспорт, год рождения. Поиск по фамилии и году рождения. Создать программу на...

Как сделать, чтобы в комбоБоксе при вводе первых букв фамилии появлялась соответствующая фамилия в комбобоксе?
День добрый, подскажите как реализовать такое действие: есть комбоБокс с выбором сотрудником, как сделать чтобы в комбоБоксе при вводе...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru