Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (все версии) - часть 3

Автор: vladk1973
Дата сообщения: 25.11.2007 13:22
ZyXEL


Код:
program sopr;

{$APPTYPE CONSOLE}

uses
SysUtils;

var r,c,f,z:real;
Function impedans(r:real; c:real; f:real):real;
var
z:real;
xc:real;
impedans:real;
Begin
xc:=1/(2*3.1415926*f*c);
z:=sqrt(r*r+xc*xc);
end;

Begin
writeln('введите в одной строке сопротивление (Ом) емкость',
'(микрофорад) и частотц (Гц) ->');
readln(r,c,f);
z:=impedans(r,c,f);
writeln('полное сопротивление',z);
Readln;
end.
Автор: ZyXEL
Дата сообщения: 25.11.2007 13:38
Ладно, мне это было просто интересно почему не запускается. Просто проходил программирование около 4 лет назад, а щас лабы опять начались, надо вспомнить программирование, достал старые лабы, думал поправить и сдать, дак нет - всё вообще забыл! сдал тогда и забыл. А задачи сейчас другие, вот пытаюсь сформировать вопрос, позже напишу новую задачу.

__
спасибо за помощь!

Добавлено:
Помогите плиз, с математикой проблемы, мне что-то даже трудно перевести пример математический в 1 строчку. Программирование за 4 года забыл, но задача такая:


Вычисление значения арифметического выражения
Вычислить значение переменной z, являющейся функцией двух переменных x и y. Для вычисления x и y требуется определить значения арифметических выражений, зависящих от переменных a и b и констант k и m.
Значения переменных a и b ввести с клавиатуры, для задания значений констант k и m использовать раздел описаний const.
Вывести на экран дисплея значения вспомогательных переменных x, y и z результат с точностью до 2-х десятичных знаков. Вывод результата сопроводить пояснительным текстом ’x=’, ’y=’, ’z=’.
Примечание. В данной программе не надо выполнять проверку области допустимых значений для знаменателя, логарифма, подкоренного выражения в квадратных корнях.

Автор: lavren
Дата сообщения: 25.11.2007 13:57
Maks150988

Цитата:
В том примере написано что надо вызвать EnumInterfaces(var s string): Boolean;
А как его вызвать-то? Не умею я функции вызывать.

Элементарно, Ватсон...

Код: ...
uses ..., USock;
...
var
S:String;
...
if not EnumInterfaces(s) then
begin
//здесь извлекаешь из s все что тебе нужно. Например: Memo1.text:=s;
eng;
...
Автор: ZyXEL
Дата сообщения: 25.11.2007 15:04


вот всё на что хватило моих сил
Автор: vladk1973
Дата сообщения: 25.11.2007 15:18
ZyXEL
А зачем ты его в одну строчку то переводишь?
Тебе ж x и y по-любому выводить на экран надо.
Следовательно и вычислять их надо как самостоятельные выражения.
И вообще, это offtopic
Автор: ZyXEL
Дата сообщения: 25.11.2007 15:29
Торможу!
Не внимательно задание читал! Вот пытаюсь сделать всё по шагам, уже голова болит, с 12 часов над этим колдую один. А из мен япрограммист - 3 пишем, 2 в уме!
математика так же! Только все остальные предметы беру.
Извините за фотопик!

Поможешь написать задачку?
Автор: Maks150988
Дата сообщения: 25.11.2007 16:14
lavren
Ах вот оно как... Спасибо, получилось.
Автор: greenpc
Дата сообщения: 26.11.2007 07:39
Maks150988
Еще раз прошу, если хочешь получить ответ - задай точный вопрос
чтобы не гадать что там произходит, а пока достаю чашку с кофейной гущей
и начинаю задавать вопросы

1.как определяешь какой шлюз верный?
2.смотришь св-ва соединения на одной и той же машине или на разных?
или приходит дядя вася и говорит что шлюз сегодня такой.
3. не ясно с топологией сети что куда соединяется.
4. для чего используется DHCP

Цитата:
Но у кого-то просто АДСЛ

и куда они соединяются?
режим роутер или бридж?

Цитата:
То есть нельзя просто так выдрать из реестра первый попавшийся адаптер

выдери тот адаптер который нужно. Как то же удалось узнать адрес 192.11.11.11

Цитата:
но срок аренды айпишника у нас 3 дня или ранее

а при чем здесь шлюз?
или IP меняется вместе с адресом шлюза (не похоже на DHCP)
тогда последний или точнее вопрос с которого надо было начать: соединение идет через адсл модем??
Автор: adg208
Дата сообщения: 26.11.2007 09:23
Используется Delphi7
Подскажите как передать переменной X в программном модуле - данные из ячейки [1,1] Excel-я.
Автор: ymg2000
Дата сообщения: 26.11.2007 11:05
adg208
Посмотри здесь:
[more]
uses
ComObj;

function Xls_To_StringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean;
const
xlCellTypeLastCell = $0000000B;
var
XLApp, Sheet: OLEVariant;
RangeMatrix: Variant;
x, y, k, r: Integer;
begin
Result := False;
// Create Excel-OLE Object
XLApp := CreateOleObject('Excel.Application');
try
// Hide Excel
XLApp.Visible := False;

// Open the Workbook
XLApp.Workbooks.Open(AXLSFile);

// Sheet := XLApp.Workbooks[1].WorkSheets[1];
Sheet := XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1];

// In order to know the dimension of the WorkSheet, i.e the number of rows
// and the number of columns, we activate the last non-empty cell of it

Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
// Get the value of the last row
x := XLApp.ActiveCell.Row;
// Get the value of the last column
y := XLApp.ActiveCell.Column;

// Set Stringgrid's row &col dimensions.

AGrid.RowCount := x;
AGrid.ColCount := y;

// Assign the Variant associated with the WorkSheet to the Delphi Variant

RangeMatrix := XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value;
// Define the loop for filling in the TStringGrid
k := 1;
repeat
for r := 1 to y do
AGrid.Cells[(r - 1), (k - 1)] := RangeMatrix[K, R];
Inc(k, 1);
AGrid.RowCount := k + 1;
until k > x;
// Unassign the Delphi Variant Matrix
RangeMatrix := Unassigned;

finally
// Quit Excel
if not VarIsEmpty(XLApp) then
begin
// XLApp.DisplayAlerts := False;
XLApp.Quit;
XLAPP := Unassigned;
Sheet := Unassigned;
Result := True;
end;
end;
end;
[/more]
Тут с Гридом, но принцип один.
Автор: RostY
Дата сообщения: 26.11.2007 11:45
еще можно использовать компоненты типа XLSFile, XLSReadWrite и читать ексель-файл напрямую, без ОЛЕ.
Автор: Sampron
Дата сообщения: 26.11.2007 23:54
Люди у кого-нибудь есть компонент TJPEGImage.pas ? если да то поделитесь очень нужен.
Автор: vladk1973
Дата сообщения: 27.11.2007 04:15
Sampron
http://redacid.org.ua/ftp/media1/all_soft/pc/develop/delphi_7/info/extras/jpeg/jpeg.pas
Автор: adg208
Дата сообщения: 27.11.2007 11:07
Подскажите пожалуйста как можно реализовать программмно в Delphi7 такую задачу:
даны 12 ячеек, пусть будут в Exсel-е
даны три буквы a, b, c; а также ячейка может быть иметь пустое значение
каждая из ячеек может содержать в себе одно из четырех значений.
Как получить результирующию строку из этих ячеек, так чтобы
если встречается одниковыебуквы в сосдних ячейках они складывались

Например: а+а=2а, b+b+b=3b, c+'пустая ячейка'+с+'пустая ячейка'+'пустая ячейка'=2с

Результат должен имет вид:
Например
2а - 4b - с - 3а
Автор: Sampron
Дата сообщения: 27.11.2007 11:36
vladk1973
Спасибо!
Автор: greenpc
Дата сообщения: 27.11.2007 12:50
adg208 типа так, но для строки
[more]
var
st1, rezStr: string;
i, countCh: Integer;
curCh : Char;
begin
st1 := 'aabbbb caa a ';
rezStr := ''; countCh := 1;
curCh := #0;
for i := 1 to 12 do begin
if st1[i]= ' ' then continue;
if st1[i]<>curCh then begin
if curCh<>#0 then begin
if countCh>1 then rezStr := rezStr+'-'+IntToStr(countCh)+curCh
else rezStr := rezStr+'-'+curCh;
end;
curCh := st1[i];
countCh := 1;
end else countCh := countCh +1;
end;
if countCh>1 then rezStr := rezStr+'-'+IntToStr(countCh)+curCh
else rezStr := rezStr+'-'+curCh;
Delete(rezStr,1,1);
ShowMessage(rezStr);
end;
[/more]
Автор: Sampron
Дата сообщения: 27.11.2007 12:57
vladk1973
мда... не пашет этот компонент в делфи 2 пишет:
Fatal Error: (0): Line too long (more than 255 characters).
а жаль.
Автор: vladk1973
Дата сообщения: 27.11.2007 15:16
Sampron
А ты еще obj файлы скачай.
У меня например проект заработал
С простейшим кодом
Автор: dominiksus
Дата сообщения: 27.11.2007 16:01
подскажите, забыл как программно установить некое свойство для кучи компонентов одного типа (TRxGifAnimator)?
Автор: vladk1973
Дата сообщения: 27.11.2007 16:28
dominiksus
Можно так попробовать

Код:
for i := 0 to ComponentCount-1 do
if Components[i] is TRxGifAnimator then
TRxGifAnimator(Components[i]).Property :=
Автор: Sampron
Дата сообщения: 27.11.2007 17:18
vladk1973
Тоже самое.
Автор: vladk1973
Дата сообщения: 27.11.2007 17:28
Sampron
Ошибка у тебя странная, как будто ты dcu файл как текстовый пытаешься открыть
Давай исходник.
Автор: Sampron
Дата сообщения: 27.11.2007 18:53
vladk1973
Смотри личку!
Автор: nuker2015
Дата сообщения: 27.11.2007 19:13
adg208
Цитата:
Например: а+а=2а, b+b+b=3b, c+'пустая ячейка'+с+'пустая ячейка'+'пустая ячейка'=2с
Результат должен имет вид:
Например 2а - 4b - с - 3а

Всего этого можно добиться средствами самого Эксэля(если ты к нему подключаешься как к ком.объекту) VBA тебе в помощь.
Иначе: Если ты работаешь напрямую с XLS (Например XLSFile, XLSReadWrite и тп.) то только логикой в твоём роекте непосредственно.
Тебе только по строкам(rows) надо логику построить или ищешь универсальное решение(обработка одинаковых ячеек по всему листу..книге)?
Автор: dominiksus
Дата сообщения: 27.11.2007 21:53
vladk1973

Цитата:
for i := 0 to ComponentCount-1 do
if Components[i] is TRxGifAnimator then
TRxGifAnimator(Components[i]).Property :=


неа, выдает ексепшин в рантайме

нашел верное решение:


Цитата:
for i := 0 to ComponentCount - 1 do
if Components[i] is TRxGifAnimator then
(Components[i] as TRxgifanimator).animate := true;




Добавлено:
а вот еще ворпос: как в компоненте TwebBrowser, который переведен в режим редактирования получить событие OnChange или какое-то близкое к нему?
Автор: Maks150988
Дата сообщения: 28.11.2007 00:23
greenpc
У нас динамические IP адреса и может смениться также шлюз. Ну а так провайдер не выдает подробный список адресов, поэтому находятся умельцы и добавляют новые маски айпишников. Вот и захотелось их все совместить в одной программе и выбирать прописку требуемых маршрутов.
Посмотрел я примеры по использованию этой функции. Правда потом скачал пример от Rouse еще, где показано как можно больше извлечь информации об адаптере.
Автор: greenpc
Дата сообщения: 28.11.2007 07:37
Maks150988

Цитата:
У нас динамические IP адреса

это было и так понятно из первого поста.
я так понял вопрос закрыт.
Автор: vladk1973
Дата сообщения: 28.11.2007 08:22
Sampron
Я скачал эти исходники, прокомпилировал в Delphi6, Не вижу проблемы чесслово.

Автор: anfilat
Дата сообщения: 28.11.2007 08:25
dominiksus

Цитата:
а вот еще ворпос: как в компоненте TwebBrowser, который переведен в режим редактирования получить событие OnChange или какое-то близкое к нему?

Если в этом компоненте реализован интерфейс IDocHostUIHandler, то вызов его функции UpdateUI можно считать этим событием. Если интерфейс не реализован, то дабавь сам или возьми более развитый EmbeddedWB (http:\\bsalsa.com).
Автор: Sampron
Дата сообщения: 28.11.2007 08:32
vladk1973
А у меня в Delphi 2.0 не компилит.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: 1С: Конвертация данных 2.0


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.