Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi и Lazarus


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Boriss
Статус: Академик
Рейтинг: 2308
∙ повысить рейтинг »
star9491
Статус: Практикант
Рейтинг: 1901
∙ повысить рейтинг »
Евгений/Genia007/
Статус: Бакалавр
Рейтинг: 959
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Delphi и Lazarus

Номер выпуска:1532
Дата выхода:17.05.2010, 23:00
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:357 / 190
Вопросов / ответов:2 / 2

Вопрос № 178347: Делфи 7. Здравстуйте уважаемые эксперты помогите пожалуйста человеку. Решить задачу " В массиве из 10 вещественных чисел найти минимальный элемент и поменять его местами с пятым элементом" и в массиве посчитать сколько будет цифр 5. зар...


Вопрос № 178348: Delphi 2007 и ниже - Windows1251 Здравствуйте уважаемые эксперты, помогите пожалуйста решить задачу на Делфи 7. Нужно найти площадь паралелограмма. Очень прошу помагите. Заранее всем спасибо кто поможет...

Вопрос № 178347:

Делфи 7.
Здравстуйте уважаемые эксперты помогите пожалуйста человеку. Решить задачу " В массиве из 10 вещественных чисел найти минимальный элемент и поменять его местами с пятым элементом" и в массиве посчитать сколько будет цифр 5. заранее спасибо кто поможет.

Отправлен: 12.05.2010, 16:16
Вопрос задал: Dima Fedorov, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Евгений/Genia007/, Бакалавр :
Здравствуйте, Dima Fedorov.
Могу предложить свой вариант решения Вашей задачи:
Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
ar: array [1..10] of real;
i, x: integer;
min, j: real;
begin
j:= 0;
for i:= 1 to 10 do // За помнили массив
begin
ar[i]:= StrToFloat(Memo1.Lines.Strings[i - 1]);
if ar[i] = 5 then
j:= j + 1; // Заодно считаем сколько будет цифр 5
end;
Label2.Caption:= 'В массиве цифер 5 - ' + FloatToStr(j); // Вывели сколько цифер 5
min:= ar[1]; // Пусть перый элемент минимальный
x:= 1;
for i:= 1 to 10 do // Находим минимальный элемент и запоминаем его позицию
if min > ar[i] then
begin
min:= ar[i];
x:= i;
end;
// Меняем местами элементы
j:= ar[5];
ar[5]:= min;
ar[x]:= j;

Memo1.Clear; // Отчистили memo
for i:= 1 to 10 do
Memo1.Lines.Add(FloatToStr(ar[i])); // Выводим результат
end;

end.
Массив вводится в memo по одному числу в строку. Прикрепленный файл: загрузить »

-----
Помогли тебе, помоги и ты.

Ответ отправил: Евгений/Genia007/, Бакалавр
Ответ отправлен: 15.05.2010, 20:57
Номер ответа: 261417

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261417 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Вопрос № 178348:

    Delphi 2007 и ниже - Windows1251
    Здравствуйте уважаемые эксперты, помогите пожалуйста решить задачу на Делфи 7. Нужно найти площадь паралелограмма. Очень прошу помагите. Заранее всем спасибо кто поможет

    Отправлен: 12.05.2010, 16:46
    Вопрос задал: Dima Fedorov, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает DimonSoft, 3-й класс :
    Здравствуйте, Dima Fedorov.

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

    1. Даны длины двух смежных сторон и угол между ними.

    В этом случае площадь будет равна произведению длин этих сторон на синус угла между ними. В программе это запишется так:

    S:=L1*L2*sin(Angle);

    Физический смысл переменных очевиден. Здесь и далее предполагается, что в них уже находятся значения в соответствии с условием задачи (т.е. что Вы знаете, как их туда поместить), а результат вычисления будет использоваться где-либо далее по тексту программы (т.е. в Вашем случае, что Вы знаете, как их вывести).

    2. Известны длина основания (одной из сторон) и высоты, опущенной на это основание.

    S:=L1*H; // H - высота

    3. Даны координаты углов параллелограмма. В этом случае длины сторон и углы между ними вычисляются из простейших математических соображений, после чего их можно использовать для решения задачи.
    3а. Есть формула, которая позволяет вычислить площадь любого (если не подводит память, то даже невыпуклого) многоугольника, заданного координатами вершин. В ней используется вычисление площадей прямоугольных трапеций. Не уверен, что Вам нужна именно она.

    =====

    Теперь, на всякий случай, о том, как ввести/вывести значения.

    1. Вам нужно написать оконное приложение.

    В этом случае помещаете на форму, например, текстовые поля TEdit. Столько же, сколько параметров будет на входе Вашей программы. Называете их "по вкусу". И кнопку (TButton), которая будет запускать вычисление площади. В обработчике нажатия кнопки объявляете требуемые переменные (в зависимости от выбранных способа вычисления площади и входных параметров). Предполагается, что в момент нажатия кнопки в текстовых полях уже будут находиться корректные входные данные. В этом случае для получения значения, находящегося , например, в поле с именем EditL1 следует использовать свойство EditL1.Text. Для его преобразования в число есть функции StrToInt(), StrToFloat() и т.п.

    Для вывода информации существует множество способов. Подходит практически любой контрол, включая форму. Любой контрол, имеющий свойство строкового типа, подойдёт. Обычно это свойство называется Caption или Text. Для того, чтобы свойству строкового типа присвоить значение в соответствии с результатом, Вам понядобятся функции преобразования чисел в строку: IntToStr(), FloatToStr().

    В Вашем случае (вычисление площадей) потребуются функции для работы именно с вещественными (float) значениями.

    2. Вы пишете консольное приложение.

    В этом случае нетрудно набросать полный (приблизительный) текст программы ;)

    Program MyProgram;
    Var
    L1, L2, Angle : Real;
    Begin
    write('Enter length of a side #1: '); readln(L1);
    write('Enter length of a side #2: '); readln(L2);
    write('Enter the angle between the sides, in radians: '); readln(Angle);
    S:=L1*L2*sin(Angle);
    writeln('S = ',S);
    readln; // Этот оператор - чтобы пользователь успел увидеть, что выводит программа
    End.

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

    =====

    P.S. Было бы хорошо, если бы Вы конкретизировали вопрос: что используется, какого типа приложение создаётся, какой метод следует использовать, каковы входные параметры программы и т.п.

    Ответ отправил: DimonSoft, 3-й класс
    Ответ отправлен: 12.05.2010, 19:04
    Номер ответа: 261351

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261351 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.14 от 03.03.2010

    В избранное