Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2010, 14:38   #1
shark2010
Пользователь
 
Регистрация: 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.
shark2010 вне форума Ответить с цитированием
Старый 25.03.2010, 14:46   #2
danekne
Форумчанин
 
Регистрация: 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);
danekne вне форума Ответить с цитированием
Старый 25.03.2010, 14:50   #3
shark2010
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 28
По умолчанию

Спасибо!, мне бы на пальцах показать я третий день на нём пишу))))

Всё со скрипом пока ))))
shark2010 вне форума Ответить с цитированием
Старый 25.03.2010, 14:54   #4
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Эй-эй... стоп! Я пошутил... Хотя мой вариант тоже свяжет две проги. Хотелось бы задание разжевать - что куда крутить...
danekne вне форума Ответить с цитированием
Старый 25.03.2010, 15:00   #5
shark2010
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 28
По умолчанию

На междугородной телефонной станции картотека абонентов, содержащая сведения о телефонах и их владельцах.
Написать программу, которая:
– Обеспечивает начальное формирование картотеки
– Вводит номер телефона и время разговора;
– Выводит извещение на оплату телефонного разговора.

Вот Я и экспериментирую написал две части а как связать не знаю
Проблема с привязкой меню)))
shark2010 вне форума Ответить с цитированием
Старый 25.03.2010, 15:08   #6
shark2010
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 28
По умолчанию

В общем нужно меню с массивом связать.. а вот в этом проблема.
shark2010 вне форума Ответить с цитированием
Старый 25.03.2010, 15:28   #7
sllh_111
Форумчанин
 
Регистрация: 10.02.2010
Сообщений: 137
По умолчанию

а в чем проблема??? распечатывай с начала массив,а в след за ним меню(чтобы они не наладывались друг на друга используй gotoyx(12,23), где 12 строка, 23 столбец ну или наоборот)
sllh_111 вне форума Ответить с цитированием
Старый 25.03.2010, 15:30   #8
shark2010
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 28
По умолчанию

А вы не могли бы тупо какой нибудь примерчик скинуть а я по нему бы разобрался...

Последний раз редактировалось shark2010; 25.03.2010 в 16:01.
shark2010 вне форума Ответить с цитированием
Старый 25.03.2010, 17:07   #9
sllh_111
Форумчанин
 
Регистрация: 10.02.2010
Сообщений: 137
По умолчанию

ну допустим есть прога вней 2 порцедуры:
1. вывод\ ввод матрицы
2. меню(тут выбираем какой-либо подпунк)

создаем второе меню, где сначало
1. выводим матрицу(прописываем вывод уже введенной матрицы)
2. обращаемся к меню1 и распичатываем его.

вот пример проги на Паскале.
Код:
program MATRIX;
uses CRT;
type mas=array[1..15,1..15]of real; mas1=array[1..15] of real;
var m4,m1,m2,m3,m5,m6,A,B,C,c1:mas; d,d1,w: real;
 m7,m8:mas1;
 m,h,i,j,k,n,q:integer;
    z,ch,ch1:char;

procedure input;
begin clrscr;
write('Введите размерность 2 квадратных матриц(A,B): ');
readln(m);
writeln('Первая: ');
for i:= 1 to m do
for j:= 1 to m do
read(a[j,i]);
writeln; writeln('Вторая: ');
for i:= 1 to m do
for j:= 1 to m do
read(b[j,i]);
end else
writeln('Ошибка!'); end;

 

  procedure menu;
 begin
 clrScr;
 textColor(10);
 gotoxy(1,2);
 writeln('Матрица А [',m,'x',m,']:');
 textColor(10);
 for j:=1 to m do
 begin
 for i:=1 to m do
 write(A[i,j]:6:1);
 writeln;
 end;
 writeln;
 textColor(10);
 writeln('Матрица B [',m,'x',m,']:');
 textColor(10);
 for j:=1 to m do
 begin
 for i:=1 to m do
 write(B[i,j]:6:1);
 writeln;
 end;
 textColor(14);
 writeln;

gotoxy(42,9); writeln('_______________ Меню ________________');
gotoxy(42,10); writeln('"+".Сложение матриц..................');
gotoxy(42,11); writeln('"-".Разность матриц (A-B)............');
gotoxy(42,13); writeln('"пробел".Выход.......................');
 end;

 procedure choise;
  begin
 repeat
 menu;
 ТУТ ПРОПИСЫВАЕШЬ ПОДПУНКТЫ МЕНЮ(ЧЕРЕЗ case of)

BEGIN
 input;
 choise;
 textColor(15);
 textBackGround(0);
 clrScr;
end.
если помогло- нажми на весы в моем профиле и кинь полож. оценку.
sllh_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не получается связать две формы использую с++ в проекте 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