|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.03.2010, 14:38 | #1 |
Пользователь
Регистрация: 25.03.2010
Сообщений: 28
|
нужно Связать две вещи Pascal
program menu2;
uses Crt; const NORM=$17; { цвет невыделеного пункта } SEL=$70; { цвет выделенного пункта } N=3; var menu:array[1..N] of string[12];{ названия пунктов меню } punkt:integer; { номер выделенного пункта } ch:char; { введенный символ } x,y:integer; { координаты первой строки меню } Procedure punkt1; begin ClrScr; writeln('Тут Должна дапуститься прога'); readln; end; Procedure punkt2; begin ClrScr; writeln('Тут трафик разговора.'); readln; end; Procedure MenuToScr;{ вывод меню на экран } var i:integer; begin ClrScr; for i:=1 to N do begin GoToXY(x,y+i-1); write(menu[i]); end; TextAttr:=SEL; GoToXY(100x,y+punkt-1); write(menu[punkt]);{ выделим строку меню } TextAttr:=NORM; end; { основная программа } begin menu[1]:=' Прога '; menu[2]:=' Трафик '; menu[3]:=' Выход '; punkt:=1; x:=5; y:=5; TextAttr:=NORM; MenuToScr; repeat ch:=ReadKey; if ch=char(0) then begin ch:=ReadKey; case ch of chr(80):{ стрелка вниз } if punkt<N then begin GoToXY(x,y+punkt-1); write(menu[punkt]); punkt:=punkt+1; TextAttr:=SEl; GoToXY(x,y+punkt-1); write(menu[punkt]); TextAttr:=NORM; end; chr(72):{ стрелка вверх } if punkt>1 then begin GoToXY(x,y+punkt-1); write(menu[punkt]); punkt:=punkt-1; TextAttr:=SEl; GoToXY(x,y+punkt-1); write(menu[punkt]); TextAttr:=NORM; end; end; end else if ch=chr(13) then begin { нажата клавиша <Enter> } case punkt of 1unkt1; 2unkt2; 3:ch:=chr(27);{ выход } end; MenuToScr; end; until ch=chr(27);{ 27 - код <Esc> } end. и Вот это ))) uses crt; type telephone = record fam,name,otch,num: string[30]; end; var i,k,n: integer; p: telephone; st: string; a: array [1..20] of telephone; begin clrscr; write('ВВедите кол-во номеров: '); readln(n); for i:= 1 to n do begin clrscr; writeln('*** Zapis No ',i,' ***'); write('Введите фамилию: '); readln(p.fam); write('Введите имя: '); readln(p.name); write('ВВедие Отчество: '); readln(p.otch); write('Введите телефон: '); readln(p.num); a[i]:=p; end; clrscr; writeln('*** Выберите параметр для поиска: '); writeln('1 - Фамилия'); writeln('2 - Имя'); writeln('3 - Отчество'); writeln('4 - Телефон'); writeln('5 - Выход'); write('Ваш выбор: '); readln(k); case k of 1: begin clrscr; write('Введите Фамилию: '); readln(st); writeln('***********************'); for i:= 1 to n do if a[i].fam=st then writeln(a[i].num,' ',a[i].fam,' ',a[i].name,' ',a[i].otch); readkey; end; 2: begin clrscr; write('Введите Имя: '); readln(st); writeln('***********************'); for i:= 1 to n do if a[i].name=st then writeln(a[i].num,' ',a[i].fam,' ',a[i].name,' ',a[i].otch); readkey; end; 3: begin clrscr; write('Введите отчество: '); readln(st); writeln('***********************'); for i:= 1 to n do if a[i].otch=st then writeln(a[i].num,' ',a[i].fam,' ',a[i].name,' ',a[i].otch); readkey; end; 4: begin clrscr; write('Введите Номер: '); readln(st); writeln('***********************'); for i:= 1 to n do if a[i].num=st then writeln(a[i].num,' ',a[i].fam,' ',a[i].name,' ',a[i].otch); readkey; end; 5: end; end. зарание спасибо!!! Последний раз редактировалось shark2010; 25.03.2010 в 15:02. |
25.03.2010, 14:46 | #2 |
Форумчанин
Регистрация: 12.02.2007
Сообщений: 360
|
assign(f1,'путь первого файла');
assign(f2,'путь второго файла'); reset(f1); while not EOF (f2){f привязываешь к файлу со второй прогой} begin s:=readln(f2); append(f1,s); end; close(f1); |
25.03.2010, 14:50 | #3 |
Пользователь
Регистрация: 25.03.2010
Сообщений: 28
|
Спасибо!, мне бы на пальцах показать я третий день на нём пишу))))
Всё со скрипом пока )))) |
25.03.2010, 14:54 | #4 |
Форумчанин
Регистрация: 12.02.2007
Сообщений: 360
|
Эй-эй... стоп! Я пошутил... Хотя мой вариант тоже свяжет две проги. Хотелось бы задание разжевать - что куда крутить...
|
25.03.2010, 15:00 | #5 |
Пользователь
Регистрация: 25.03.2010
Сообщений: 28
|
На междугородной телефонной станции картотека абонентов, содержащая сведения о телефонах и их владельцах.
Написать программу, которая: – Обеспечивает начальное формирование картотеки – Вводит номер телефона и время разговора; – Выводит извещение на оплату телефонного разговора. Вот Я и экспериментирую написал две части а как связать не знаю Проблема с привязкой меню))) |
25.03.2010, 15:08 | #6 |
Пользователь
Регистрация: 25.03.2010
Сообщений: 28
|
В общем нужно меню с массивом связать.. а вот в этом проблема.
|
25.03.2010, 15:28 | #7 |
Форумчанин
Регистрация: 10.02.2010
Сообщений: 137
|
а в чем проблема??? распечатывай с начала массив,а в след за ним меню(чтобы они не наладывались друг на друга используй gotoyx(12,23), где 12 строка, 23 столбец ну или наоборот)
|
25.03.2010, 15:30 | #8 |
Пользователь
Регистрация: 25.03.2010
Сообщений: 28
|
А вы не могли бы тупо какой нибудь примерчик скинуть а я по нему бы разобрался...
Последний раз редактировалось shark2010; 25.03.2010 в 16:01. |
25.03.2010, 17:07 | #9 |
Форумчанин
Регистрация: 10.02.2010
Сообщений: 137
|
ну допустим есть прога вней 2 порцедуры:
1. вывод\ ввод матрицы 2. меню(тут выбираем какой-либо подпунк) создаем второе меню, где сначало 1. выводим матрицу(прописываем вывод уже введенной матрицы) 2. обращаемся к меню1 и распичатываем его. вот пример проги на Паскале. Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не получается связать две формы использую с++ в проекте Windows Application Form (не MFC) VS2008 | molodoy-pirat | Windows Forms | 2 | 23.04.2009 10:27 |
Как связать две таблицы | Savage | Microsoft Office Access | 0 | 09.04.2009 13:15 |
Как связать две программы на Паскале | Romanus | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 29.07.2007 21:09 |