Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

22.02.2009, 20:34
|
|
Познающий
Регистрация: 31.08.2007
Сообщений: 94
Провел на форуме: 422909
Репутация:
200
|
|
Есть сортировка массива (tasm):
Код:
masm
model small
.data
message1 db 10,13, 'Primary array : $',10,13
message2 db 10,13, 'Sorted array : $',10,13
promt db 10,13,10,13,'Press any key to exit...$'
len equ 9
mas dw 2,7,4,0,1,9,3,6,5,8
tmp dw 0
i dw 0
j dw 0
.stack
.code
main:
mov ax,@data
mov ds,ax
mov ah,9
mov dx,offset message1
int 21h
mov cx,10
mov si,0
_outputArray:
mov ah,2
mov dx,mas[si]
add dl,30h
int 21h
add si,2
loop _outputArray
; for (i=0;i<9;i++)
; for (j=9;j>i;j--)
; if (mas[i]>mas[j])
; {tmp=mas[i];
; mas[i]=mas[j];
; mas[j]=tmp;}
sort:
mov j,9
jmp cyclj
xchng:
mov bx,i
shl bx,1
mov ax,mas[bx]
mov bx,j
shl bx,1
cmp ax,mas[bx]
jle lesser
mov tmp,ax
mov ax,mas[bx]
mov bx,i
shl bx,1
mov mas[bx],ax
mov bx,j
shl bx,1
mov ax,tmp
mov mas[bx],ax
lesser:
dec j
cyclj:
mov ax,j
cmp ax,i
jg xchng
inc i
cmp i,len
jl sort
mov ah,9
mov dx, offset message2
int 21h
mov cx,10
mov si,0
_outputSortedArray:
mov dx,mas[si]
add dl,30h
mov ah,2
int 21h
add si,2
loop _outputSortedArray
mov ah,9
mov dx,offset promt
int 21h
mov ah,1
int 21h
mov ah,4ch
int 21h
end main
Не подскажет кто-нибудь как учитывать еще и знак числа? Сортирует только положительные числа...
Последний раз редактировалось A2GIL; 23.02.2009 в 15:09..
|
|
|

22.02.2009, 23:11
|
|
Новичок
Регистрация: 22.02.2009
Сообщений: 1
Провел на форуме: 9473
Репутация:
0
|
|
Помогите кто можэт , задание написать программу в С++builder 6 обробатывающую вектор, добавление нового элемента, удаление элемента, изменение, поиск максимального и минимального значения , в принцепи все ужэ зделал но препод спалил что удаление элемента работает каряво а в принцепи не работает, когда удаляется элемент то поиск минимального значения всегда показывает 0, то есть элемент получается не удаляется а заменяется на ноль , ПОМОГИТЕ кто можэт что нужно дописать чтоб нормально удалялся элемент!!! .
Код:
//---------------------------------------------------------------------------
#include <iostream>
# include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int i, j, k, n, is_null;
float tmp;
char c;
FILE *fp;
float **mas;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
is_null=1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RazmerClick(TObject *Sender)
{
for (i=0;i<SG1->ColCount;i++)
for (j=0;j<SG1->RowCount;j++)
{SG1->Cells[i][j]="";
SG1->Cells[i][j].Delete(i,1);
}
SG1->ColCount = StrToInt(Edit1->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MaxClick(TObject *Sender)
{
if (is_null!=1) //î÷èñòèòü ïàìÿòü îò ñòàðîãî ìàññèâà
{
for(i=0; i<n; i++) delete[] mas[i];
delete[] mas;
}
//íîâîå êîëè÷åñòâî ýë-òîâ
n = StrToInt(Edit1->Text);
mas = new float *[n];
for (i = 0; i < n; i++)
mas[i] = new float [n];
//ñ÷èòûâàíèå èç String Grid 1 â ìàññèâ
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{ if (SG1->Cells[i][j]!="")
mas[j][i]=StrToFloat(SG1->Cells[i][j]);
else mas[j][i]=0;
}
//ïîèñê ìàêñèìàëüíîãî çíà÷åíèÿ
i=0;
for (j=0; j<n; j++)
{
if (mas[i][j]>tmp)
tmp = mas[i][j];
}
//âûâîä â String Grid 2
Edit2->Text = FloatToStr(tmp);
//ðåçóëüòàò ïîèñêà â òåêñòîâûé ôàéë
fp = fopen("max.txt", "w");
{
fprintf(fp," %.2f ",tmp);
fprintf(fp,"\n");
}
fclose(fp);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
if (is_null!=1) //åñëè ïàìÿòü ïîä ìàññèâ âûäåëåíà, îñâîáîäèòü
{
for(i=0; i<StrToInt(Edit1->Text); i++) delete[] mas[i];
delete[] mas;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MinClick(TObject *Sender)
{
if (is_null!=1) //î÷èñòèòü ïàìÿòü îò ñòàðîãî ìàññèâà
{
for(i=0; i<n; i++) delete[] mas[i];
delete[] mas;
}
//íîâîå êîëè÷åñòâî ýë-òîâ
n = StrToInt(Edit1->Text);
mas = new float *[n];
for (i = 0; i < n; i++)
mas[i] = new float [n];
//ñ÷èòûâàíèå èç String Grid 1
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{ if (SG1->Cells[i][j]!="")
mas[j][i]=StrToFloat(SG1->Cells[i][j]);
else mas[j][i]=0;
}
//ïîèñê ìèíèìàëüíîãî çíà÷åíèÿ
i=0;
for (j=0; j<n; j++)
{
if (mas[i][j]<tmp)
tmp = mas[i][j];
}
//âûâîä â Edit3
Edit3->Text = FloatToStr(tmp);
//ðåçóëüòàò ïîèñêà â òåêñòîâûé ôàéë
fp = fopen("min.txt", "w");
{
fprintf(fp," %.2f ",tmp);
fprintf(fp,"\n");
}
fclose(fp);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
|
|
|

25.02.2009, 22:06
|
|
Участник форума
Регистрация: 13.11.2008
Сообщений: 131
Провел на форуме: 776255
Репутация:
52
|
|
Пишу модуль на Паскале. По сути написал, но не пойму, что надо указывать в разделе инициализации( Гляньте, плиз, а то кодер с меня пока не очень
Код:
unit unitd;
Interface
uses crt;
type massiv=array[1..100,1..100] of real;
massiv1=array[1..100] of real;
Implementation
procedure matri(var a:massiv);
procedure Matr_Prakt(a:massiv; var koor:massiv1);
procedure Funkcia(koor:massiv1);
procedure matri;
var
i,j:byte;
function new:real;
begin
new:=((2-sqr(i-3))/i)*(j-5.7);
end;
begin
clrscr;
for i:=1 to 10 do
for j:=1 to 10 do
a[i,j]:=new;
for i:=1 to 10 do begin
writeln;
for j:=1 to 10 do
write(a[i,j]:8:2);
end;
readkey;
end;
procedure Matr_Prakt;
type massiv=array[1..100,1..100] of integer;
massiv1=array[1..500] of integer;
var q,n,n1,max_stolb:integer;
i,j:byte;
x:massiv1;
begin
i:=1;
max_stolb:=1;
for j:=2 to N do
if a[i,j]>a[i,j-1] then max_stolb:=j;
for i:=1 to N do
for j:=1 to N do
koor[i]:=koor[i]+a[i,j]*a[j,max_stolb];
write('a(',koor[1]);
for i:=2 to n do
write(',',koor[i]);
write(')');
writeln;
writeln;
readln;
end;
procedure Funkcia;
var U:real;
qwer,a,i,n,chisl,znam:integer;
q1,q2:real;
function F(b:real; var a:real):integer;
begin
a:=a+b;
end;
begin
for i:=1 to n do
if koor[i]<=1 then f(koor[i],q1);
for i:=1 to n do
if koor[i]>1 then f(koor[i],q2);
U:=(1+q1)/(2+q2);
writeln(u);
readln;
writeln;
writeln;
end;
begin
matri;
Matr_Prakt;
Funkcia;
end.
|
|
|

27.02.2009, 10:04
|
|
Участник форума
Регистрация: 10.02.2009
Сообщений: 203
Провел на форуме: 3226894
Репутация:
379
|
|
Делфи!
Вычислить площадь плоской фигуры, заключенной между дугами кривых:
y(x)=-Ln(x) и y(x)=R-x
При каком значении R площадь этой фигуры не превышает единицы.
|
|
|

02.03.2009, 03:57
|
|
Участник форума
Регистрация: 12.06.2007
Сообщений: 153
Провел на форуме: 1990548
Репутация:
58
|
|
Pascal
Задание 1
Имеется склад, на котором присутствует некоторый ассортимент товаров. Запас каждого товара неограничен. У каждого товара своя стоимость Ci и масса mi. Написать программу, которая методом динамического программирования формирует такой набор товаров, чтобы его суммарная масса не превышала заданную грузоподъемность М, и стоимость была бы максимальной. На экран вывести промежуточные вычисления, сформированный набор, его стоимость и массу.
Задание 2
Написать программу, которая оптимальным образом расставляет скобки при перемножении матриц. Размерности матриц считать из файла. На экран вывести промежуточные вычисления и результат.
М1[5x4], M2[4x7], M3[7x3], М4[3x8], M5[8x3], M6[3x7], M7[7x2], M8[2x2].
за правильное решение +
|
|
|

02.03.2009, 15:57
|
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме: 2050916
Репутация:
0
|
|
Сообщение от Moldman
Задание 2
Написать программу, которая оптимальным образом расставляет скобки при перемножении матриц. Размерности матриц считать из файла. На экран вывести промежуточные вычисления и результат.
М1[5x4], M2[4x7], M3[7x3], М4[3x8], M5[8x3], M6[3x7], M7[7x2], M8[2x2].
Оптимально по чем? По числу операций, по объему памяти, по быстродействию?
|
|
|

02.03.2009, 18:48
|
|
Участник форума
Регистрация: 12.06.2007
Сообщений: 153
Провел на форуме: 1990548
Репутация:
58
|
|
по объему памяти 
|
|
|

02.03.2009, 21:51
|
|
Познающий
Регистрация: 15.01.2009
Сообщений: 37
Провел на форуме: 628486
Репутация:
26
|
|
Дано действительное число y, натуральное число n и сгенерированное случайное действительное число x (x=0…n). Вычислить  . Вивести дробовую часть результата. IDE: Borland Pascal 7.0.
|
|
|

02.03.2009, 23:39
|
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме: 2050916
Репутация:
0
|
|
Сообщение от Moldman
Задание 2
Написать программу, которая оптимальным образом расставляет скобки при перемножении матриц. Размерности матриц считать из файла. На экран вывести промежуточные вычисления и результат.
М1[5x4], M2[4x7], M3[7x3], М4[3x8], M5[8x3], M6[3x7], M7[7x2], M8[2x2].
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TMatrixInfo =
record
size: array [0..1] of integer;
desc: string;
end;
TMatrixes =
array [0..7] of TMatrixInfo;
var bestSolveMemoryVolume: integer;
bestSolve: TMatrixes;
matrixSizes: TMatrixes;
procedure GenerateSolves(solve: TMatrixes; count: integer; maxMemoryVolume: integer);
var memoryVolume:integer;
i, j: integer;
newSolve: TMatrixes;
begin
if count=1 then
begin
//построение варианта решения - закончено
//проверяем - лучшее ли оно ?
if (maxMemoryVolume < bestSolveMemoryVolume) then
begin
bestSolveMemoryVolume := maxMemoryVolume;
bestSolve := solve;
end;
exit;
end;
{строим варианты решения}
for i:=0 to count-2 do
begin
for j:=0 to count-2 do
if(j<i) then
begin
//копируем элементы
newSolve[j].size[0] := solve[j].size[0];
newSolve[j].size[1] := solve[j].size[1];
newSolve[j].desc := solve[j].desc;
end
else
if j=i then
begin
//имитируем произведение матриц i и i+1
newSolve[j].size[0] := solve[j].size[0];
newSolve[j].size[1] := solve[j+1].size[1];
newSolve[j].desc := '('+solve[j].desc+'*'+solve[j+1].desc+')';
//счтаем сколько памяти нужено под новую матрицу
memoryVolume := newSolve[i].size[0]*newSolve[i].size[1];
if(memoryVolume>maxMemoryVolume) then
maxMemoryVolume :=memoryVolume;
end
else
begin
//копируем элементы
newSolve[j].size[0] := solve[j+1].size[0];
newSolve[j].size[1] := solve[j+1].size[1];
newSolve[j].desc := solve[j+1].desc;
end;
//если текущее решение уже хуже лучшего, то не продолжаем дальше
if maxMemoryVolume>bestSolveMemoryVolume then
exit;
//моделируем следующее перемножение
GenerateSolves(newSolve, count-1, maxMemoryVolume);
end;
end;
begin
matrixSizes[0].size[0] :=5;
matrixSizes[0].size[1] :=4;
matrixSizes[0].desc := 'M[5x4]';
matrixSizes[1].size[0] :=4;
matrixSizes[1].size[1] :=7;
matrixSizes[1].desc := 'M[4x7]';
matrixSizes[2].size[0] :=7;
matrixSizes[2].size[1] :=3;
matrixSizes[2].desc := 'M[7x3]';
matrixSizes[3].size[0] :=3;
matrixSizes[3].size[1] :=8;
matrixSizes[3].desc := 'M[3x8]';
matrixSizes[4].size[0] :=8;
matrixSizes[4].size[1] :=3;
matrixSizes[4].desc := 'M[8x3]';
matrixSizes[5].size[0] :=3;
matrixSizes[5].size[1] :=7;
matrixSizes[5].desc := 'M[3x7]';
matrixSizes[6].size[0] :=7;
matrixSizes[6].size[1] :=2;
matrixSizes[6].desc := 'M[7x2]';
matrixSizes[7].size[0] :=2;
matrixSizes[7].size[1] :=2;
matrixSizes[7].desc := 'M[2x2]';
bestSolveMemoryVolume := MaxInt;
//перебираем все возможные варианты, ищем лучший вариант
GenerateSolves(matrixSizes, 8, 0);
//рисуем решение
Writeln(bestSolve[0].desc);
Writeln('Max matrix: '+ intToStr(bestSolveMemoryVolume) + ' items');
Readln;
end.
Последний раз редактировалось Algol; 02.03.2009 в 23:52..
|
|
|

03.03.2009, 01:05
|
|
Участник форума
Регистрация: 10.02.2009
Сообщений: 203
Провел на форуме: 3226894
Репутация:
379
|
|
Сообщение от snAKe33
Делфи!
Вычислить площадь плоской фигуры, заключенной между дугами кривых:
y(x)=-Ln(x) и y(x)=R-x
При каком значении R площадь этой фигуры не превышает единицы.
сможет мне помочь кто-нибудь?!
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|