|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.10.2011, 23:45 | #1 |
Регистрация: 09.08.2011
Сообщений: 7
|
Работа с комплексными числами
Unit ch;
interface type compl=Object r,m:real; st:string; function Dei(stre:string):real; function Mni(stim:string):real; end; implementation Function compl.Dei(stre:string):real; var re:string; cr:integer; begin st:=stre; if pos('+',st)>1 then begin re:=copy(st,1,pos('+',st)-1); val(re,r,cr); dei:=r; end; if pos('-',st)>1 then begin re:=copy(st,1,pos('-',st)-1); val(re,r,cr); dei:=r; end; if pos('-',st)=1 or pos('+',st) then begin delete(st,1,1); re:=copy(st,1,pos('-',st)-1); val(re,r,cr); dei:=r*(-1); end; if pos('-',st)=1 or pos('+',st) then begin delete(st,1,1); re:=copy(st,1,pos('+',st)-1); val(re,r,cr); dei:=r*(-1); end; end; function compl.Mni(stim:string):real; var im:string; cm:integer; begin st:=stim; if pos('+',st)>1 then begin im:=copy(st,pos('+',st)+1,(pos('i', st)-pos('+',st))-1); val(im,m,cm); Mni:=m; end; if pos('-',st)>1 then begin im:=copy(st,pos('-',st)+1,(pos('i',st)-pos('-',st))-1); val(im,m,cm); Mni:=m; end; if pos('+',st)=1 then begin delete(st,1,1); im:=copy(st,pos('+',st)+1,(pos('i', st)-pos('+',st))-1); val(im,m,cm); Mni:=m; end; if pos('+',st)=1 then begin delete(st,1,1); im:=copy(st,pos('-',st)+1,(pos('i',st)-pos('-',st))-1); val(im,m,cm); Mni:=m; end; if pos('-',st)=1 then begin delete(st,1,1); im:=copy(st,pos('+',st)+1,(pos('i', st)-pos('+',st))-1); val(im,m,cm); Mni:=m; end; if pos('-',st)=1 then begin delete(st,1,1); im:=copy(st,pos('+',st)+1,(pos('i', st)-pos('+',st))-1); val(im,m,cm); Mni:=m; end; end; end. Program ggg; uses ch; var f:compl; stt:string; sh:integer; begin writeln('vvedite konpleksnoe chislo'); readln(stt); writeln('viberite deistvie'); writeln(' 1-vivesti deistvitelnuu chast'); writeln(' 2-vivesti mnimuu chast'); readln(sh); if sh=1 then writeln(f.dei(stt):5:2); if sh=2 then writeln(f.Mni(stt):5:2); readln; end. Здравствуйте! Дан объект. В нем дана строка, в которую записывается комплексное число. Нужно вывести на экран вещественную и мнимую часть числа! Нужно рассмотреть два варианта, когда перед перед вещественной частью есть знак + или -( например -8-8i) и когда его нет (8+8i)! Следовательно будет 6 вариантов! Проблема:При выводе вещественной не работает случай +8+8i (когда два +), при выводе мнимой части не работает совсем ничего... Помогите пожалуйста! Что именно я делаю не правильно?? И как лучше сделать? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с числами на C++ | Сержuk | Помощь студентам | 10 | 21.09.2011 03:29 |
Программа вычисления нулей функции с комплексными числами! | denismax | Фриланс | 3 | 04.04.2011 11:33 |
Работа с комплексными числами в Excel (VBA макрос) | bdfy | Microsoft Office Excel | 4 | 06.03.2011 23:14 |
тригонометрические действия над комплексными числами | шурег | Общие вопросы Delphi | 2 | 26.12.2010 21:31 |
Проблема с комплексными числами | -=aHTPoПоС=- | Помощь студентам | 3 | 08.12.2009 21:02 |