PDA

Просмотр полной версии : Студентам с лабораторными сюда


Страницы : [1] 2 3 4 5 6 7 8 9 10 11 12

_Great_
20.06.2007, 14:25
В этой теме можно просить (если нужно) помощи в написании какой-либо лабораторной работы в институте-школе-где еще по программированию на С/С++/Delphi/Asm.

Просьбы вне этой темы будут удаляться либо объединяться с этой темой, а авторы наказываться, поскольку они (темы, да и авторы тоже) засоряют раздел.

Примечание. Соответственно, просьба не писать в темах в заголовке слово "задачка" и похожие, потому что это будет расцениваться как просьба написать лабу.
Выбирайте содержательные названия тем

n3m0
21.06.2007, 09:52
Срочно нужна помощь
Нада нарисовать на ПАскале множество точек координат на 2(|y|+|x|)>=x^ + y^>=4
где >= - больше-равно, ^ - в квадрате
Помоите срочно

NetMan
21.06.2007, 14:53
n3mo > Проверь:
uses crt,graph;
const
h=0.01;
scale=100;
var GrDr,GrM,CX,CY:integer;
a,b,x,y:real;
begin
GrDr:=9;
GrM:=2;
initgraph(GrDr,GrM,'');

CX:=round(GetMaxX/2);
CY:=round(GetMaxY/2);

moveto(CX-scale*2,CY);
linerel(scale*2,-scale*2);
linerel(scale*2,scale*2);
linerel(-scale*2,scale*2);
linerel(-scale*2,-scale*2);
circle(CX,CY,scale*2);
x:=-2;
y:=-2;
repeat
repeat
a:=2*(abs(x)+abs(y));
b:=sqr(x)+sqr(y);
if (a>=b) and (b>=4) then
putpixel(CX+round(x*scale),CY+round(y*scale),15);
x:=x+h;
until x>2;
y:=y+h;
until y>2;
readln;
closegraph;
end.

Ch3ck
21.06.2007, 14:55
Сразу же залью множетсво программ на С++ (Самые первые лабароторки везде.)
Список:
Задание №1.
Табулирование функции.
Вычислить таблицу значений функции y=f(x) для значений аргумента X,
изменяющегося в интервале от Xнач до Xкон c шагом dX. Для вычисления
функции использовать подпрограмму, т.е. ввести функцию пользователя F(x).

вариант вид функции Xнач Xкон dX
00 y=2x/(1=sin(x/3)) 1,3 6,5 0,5
01 y=0,7(1/x+lnx) 14 34 2,5
02 y=2x(1+cos(x/2)) 0,9 5,5 0,5
03 y=2x(1+sin(x/3)) 1,7 6,3 0,5
04 y=2,5/(1/x+lnx) 12 25 2,5
05 y=2x/(2+cos(x/2)) 0,9 5,6 0,5
06 y=0,7(3x+1/lnx) 10 19 1,5
07 y=2x(1+cos(x/2)) 0,9 5,5 0,5
08 y=1/x+2cos(x) 12 25 2,5
09 y=2x(0,5*x+cosx) 1,5 6,5 0,5
10 y=0,9(3/x+lnx) 13 34 2,5
11 y=2x(3+sin(x/3)) 1,7 6,3 0,5
12 y=0,5/(1/x+lnx) 10 25 1,5
13 y=2x/(2+sin(x/2)) 0,7 5,6 0,5
14 y=0,7(3x+1/lnx) 10 19 1,5
15 y=5x(2+cos(x/2)) 0,5 5,5 0,5

Задание №2.
Обработка одномерного массива.
Ввести одномерный массив X, содержащий 9 вещественных чисел.
Выполнить обработку по варианту. Исходный массив и результаты
вывести на экран.

вариант содержание задания
00 Найти сумму отрицательных и произведение положительных
чисел массива.
01 Найти минимальное число массива.
02 Подсчитать количество чисел, равных 5.
03 Найти сумму элементов с чётными номерами.
04 Найти среднее арифметическое всех положительных чисел
массива.
05 Определить количество положительных и количество
отрицательных чисел массива.
06 Вывести на экран номера чисел, равных 0.
07 Преобразовать массив, расположив в нём числа
в обратной последовательности.
08 Преобразовать массив, заменив все отрицательные числа
на -1, а положительные на 1.
09 Вывести на экран числа, встречающиеся в массиве
более одного раза.
10 Преобразовать массив, расположив сначала все отрицательные,
затем все положительные числа (порядок следования чисел
внутри группы не изменять).
11 Заменить все отрицательные числа их модулем.
12 Найти минимальное число массива и его порядковый номер.
13 Заменить все отрицательные числа на нулевые.
14 Подсчитать количество чисел больших 10.
15 Найти среднее арифметическое всех отрицательных
чисел массива.

Задание №3.
Обработка двумерного массива.
Ввести массив чисел, содержащий N строк и M столбцов.
Значения N и M задать самим. Выполнить обработку по варианту.
Исходный массив и результаты вывести на экран, при этом двумерный
массив выводить в форме матрицы.

вариант содержание задания
00 Сформировать одномерный массив, состоящий из максимальных
чисел каждой строки.
01 Сформировать одномерный массив, состоящий из максимальных
чисел каждого столбца.
02 Преобразовать массив: элементы строки, в которой находится
максимальный элемент матрицы, заменить на нули.
03 Преобразовать массив: элементы того столбца, в котором
находится максимальный элемент матрицы, заменить на нули.
04 Каждый столбец матрицы упорядочить по убыванию.
05 Каждую строку матрицы упорядочить по убыванию.
06 Преобразовать массив: разделить элементы каждого столбца
заданной матрицы на последний элемент столбца.
07 Преобразовать массив: разделить элементы каждой строки
матрицы на последний элемент этой строки.
08 Определить количество нулевых чисел в каждой строке
матрицы.
09 Определить количество нулевых чисел в каждом столбце
матрицы.
10 Сформировать массив, состоящий из сумм положительных чисел
каждого столбца.
11 Сформировать массив, состоящий из сумм отрицательных чисел
каждой строки.
12 Найти среднее арифметическое положительных чисел каждой
строки.
13 Найти среднее арифметическое положительных членов каждого
столбца.
14 Преобразовать массив, умножив элементы каждой строки на
минимальный элемент этой строки.
15 Преобразовать массив, умножив элементы каждого столбца на
минимальный элемент этого столбца.
Скачать => ТУТ <= (http://weppc.jino-net.ru/Labworks.rar)

Ch3ck
22.06.2007, 11:39
Куча лабораторных работ на ПАСКАЛЕ.

http://weppc.jino-net.ru/pasworks.rar

Fire3d
23.06.2007, 17:01
Внимение задчка по turbo pascal )
Воть надо сделать програму в каторый содержится к примеру 5 вапросов и 10 вариантов ответа. Теперь вопрос как сделать чтобы программа понила что ответ правильный....
В конце выведится количество правильныйх ответов на вопросы.
хМ как сделать это подксажите.

NetMan
23.06.2007, 17:11
Надо хранить вопросы, ответы и номер правильного ответа в файле.

Joker-jar
23.06.2007, 17:12
как сделать чтобы программа понила что ответ правильный

Читай про условия :)

количество правильныйх ответов на вопросы

Счетчик... или массив ответов для последующего анализа

Fire3d
23.06.2007, 17:13
uses crt;
var a,b,c:integer;
begin
clrscr;
a:=0;
write('кушаеш? ');
write('1:da ');
write(' 2:HET ');
read(a);
clrscr;
write(' хакер?');
write(' 1:HET ');
write(' 2:da ');
read(a);
clrscr;
a:=a+a;
write(a);
end. Хм может быть так ? но как тогда сделать правильный или не правильный ответ ?

Joker-jar
23.06.2007, 17:27
Объяви структуру, которая содержит: текст вопроса, тексты вариантов ответа, номер правильного ответа. Создай файл объявленных структур. Отдельной программой наполни файл вопросами.
При ответе сверяй ответ с правильным ответом, если ок, инкрементируй счетчик.

Fire3d
23.06.2007, 17:30
Объяви структуру, которая содержит: текст вопроса, тексты вариантов ответа, номер правильного ответа. Создай файл объявленных структур. Отдельной программой наполни файл вопросами.
При ответе сверяй ответ с правильным ответом, если ок, инкрементируй счетчик.
Джокер мы еще не проходили работу с файлами...
Другой способ есть ?

Joker-jar
23.06.2007, 17:39
Тогда все в виде констант. Можно в виде массива
TQuestion = record
Text, Ans1, Ans2, Ans3, Ans4: string;
RightAns: 1..4;
end;
...
QArray: array[1..10] of TQuestion;
При запуске программы заполняй чем надо.

Fire3d
23.06.2007, 17:41
Тогда все в виде констант. Можно в виде массива
TQuestion = record
Text, Ans1, Ans2, Ans3, Ans4: string;
RightAns: 1..4;
end;
...
QArray: array[1..10] of TQuestion;
При запуске программы заполняй чем надо.
Ясно наверное я рано взялся за такое задние ((( Только сегодня массивы прошли (((

Joker-jar
23.06.2007, 17:41
Хотя, если у тебя вопросы типа ДА/НЕТ, то там проще

Fire3d
23.06.2007, 17:45
Хотя, если у тебя вопросы типа ДА/НЕТ, то там проще
Ну для начала... я хотел начать с ДА/НЕТ.

md5f1h
23.06.2007, 17:50
задание тут http://www.permcity.info/help.jpg если кто-нибудь сделает хотяб что нибудь из этой работы буду плюсовать каждый день тому человеку

Joker-jar
23.06.2007, 18:01
Fire3d, написал небольшой примерчик:
const
Tqs: array[1..5] of string = ('Vopros 1','Vopros 2','Vopros 3','Vopros 4','Vopros 5');
Tans: array[1..5] of boolean = (true,true,false,true,false);

var
s: string;
i,count: integer;

begin
writeln('Otvet: y or n');
for i := 1 to 5 do
begin
writeln(Tqs[i]);
readln(s);
if ((s = 'y')and(Tans[i]))or((s = 'n')and(not Tans[i])) then
count := count + 1;
end;
writeln('Right answers: ',count);
readln;
end.

Fire3d
23.06.2007, 18:17
Fire3d, написал небольшой примерчик:
const
Tqs: array[1..5] of string = ('Vopros 1','Vopros 2','Vopros 3','Vopros 4','Vopros 5');
Tans: array[1..5] of boolean = (true,true,false,true,false);

var
s: string;
i,count: integer;

begin
writeln('Otvet: y or n');
for i := 1 to 5 do
begin
writeln(Tqs[i]);
readln(s);
if ((s = 'y')and(Tans[i]))or((s = 'n')and(not Tans[i])) then
count := count + 1;
end;
writeln('Right answers: ',count);
readln;
end.
Спасибо когда приду дмоой сразу научну разбирать твой код. А тут вопросы можно задавать по коду ??? Просто некторый моменты мне не понятны....

Joker-jar
23.06.2007, 18:27
md5f1h, с нуля вряд ли кто-то будет делать. По отдельным вопросам обращайся, помогут.

da_ff
24.06.2007, 00:06
2 Fire3d вот два теста может помогут писал очень давно но если че стукни в асю http://dobropozalovat.ifolder.ru/2463428

Fire3d
26.06.2007, 20:03
Возвращаюсь к опросам....
uses crt;

procedure variant(c,x,y:integer;s:string);
begin
textcolor(c); gotoxy(x,y); write(s);
end;

procedure vopros(c,x,y:integer;s:string);
begin
textcolor(c); gotoxy(x,y); write(s);
end;

var otvet,ball,summa:integer;
i:byte;
begin
clrscr;
ball:=0;
vopros(2,30,1,'B kakom weke no9BuJIc9 komp. ?');
variant(14,2,1,'1)‚ 21 weke.');
variant(14,2,2,'2)ў 19 weke. ');
variant(14,2,3,'>'); read(otvet);

clrscr;

vopros(2,30,1,'Antichat-samu ly4shi ?');
variant(14,2,1,'1)Da!');
variant(14,2,2,'2)Hea!');
variant(14,2,3,'>');readln(otvet);

if otvet=1 then ball:=ball+5;
summa:=ball;
if otvet=2 then ball:=ball-5;
writeLn('Vash ball=',summa);
readkey;
end.
Хм...если сделать рандом.... в моем случие при рандоме окажется vopros(2,30,1,'Antichat-samu ly4shi ?'); 1)Нет а 2)Да....
и бал в минус пойдет а ответ будет верный как выйти из ситуции....?

Дикс
30.06.2007, 12:11
Имеет место быть следующее задание:

Вариант задания реализовать в виде функции, использующей для работы со строкой только указатели и операции вида *p++, p++ и т.д..

" Быстрая" сортировка (разделением) с использованием указателей
на правую и левую границы массива, текущих указателей на правый и левый
элемент и операции сравнения указателей.

------

я не знаю с чего начать.
объясните пожалуйста попроще что значит " Быстрая" сортировка (разделением),
а я уже на основе этого сам всё сделаю.

The_HuliGun
30.06.2007, 12:43
Ето алгоритм QuickSort, читай здесь (http://www.citforum.ru/programming/theory/sorting/sorting1.shtml#2_4)

Дикс
30.06.2007, 16:32
никак не могу сделать этот квиксорт =\


вот чего я делаю:
1. задаю каким-то хреном середину массива (этот выбор наугад совсем мне не нравится, херня какая-то)
2. затем ищу слева число, больше или равное данному.
если не нашёл, то оно получается такое же как и в середине.
3. ищу слева меньшее данного. или опять же ему равное?
вот уже из-за этой херни я не вижу там логики.
сколько описаний в сети не прочёл - нигде не сказано точно.
примеров нормальных вообще нет.

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

потом в примере написано надо брать середину левой части. опять же наугад. какой идиот это писал?
и доводить всё до того, пока левая часть не станет равна одному элементу массива.
а что дальше?
и как всё это реализовать?

помогите, набросайте хоть какой-нить пример нормальный

ZaCo
30.06.2007, 16:54
да уж, куда этому идиоту хоару до нас...

Дикс
30.06.2007, 17:15
:d
да не хоар идиот, а тот кто учебник писал. там таки и пишут - возьмём наугад.. чо за херня, как можно делать что-то наугад? в топку таких учителей

ZaCo
30.06.2007, 17:24
наугад, потому что выбор элемента абсолютно никак не влияет на конечную эффективность.
зы наугад читай как произвольным образом.

Дикс
30.06.2007, 18:24
вот можно ли это дело изменить так чтобы функция работала только на указателях?


void quicksort(int *array, int start, int stop)
{
int left = start,
right = stop,
center = array[(start + stop) / 2];

while(left<right)
{
while(array[left]<center) left++;
while(array[right]>center) right--;
if(left<=right)
{
swap(&array[left], &array[right]);
left++;
right--;
}
}
if(right>start) quicksort(array, start, right);
if(left<stop) quicksort(array, left, stop);
}

ZaCo
30.06.2007, 18:37
array[i] -> *(array+i)
&array[i] -> array+i

Дикс
01.07.2007, 09:38
задача: Функция находит в строке заданную подстроку и
возвращает динамический массив указателей на все вхождения этой подстроки.

так вот я не знаю, какой размер задать массиву? получается всякая чушь:

#include "stdio.h"
void strf(char s1[], char s2[], int pos=0)
{
int n = sizeof(s1)/sizeof(s1[0]);
int n2 = sizeof(s2)/sizeof(s2[0]);
char *mass[20];
for(int i=0; i<=n; i++)
{
if(s1[i] == s2[i])
{
int g=i;
for(int l=i; l<=n2; l++)
if(s1[l]!=s2[l])
{
int g=-1; break;
}
mass[i] = &s1[g];
}
}

}


void main()
{
char s1[] = "Terriuckble Fucker Stuckpidly";
char s2[] = "uck";
strf(s1,s2);
}

Дикс
01.07.2007, 11:03
вот переделал сколько смог, но всё равно не работает собака серая!
я с массивом ms уже замучался. надо чтобы он был массивом указателей char *ms
и в него сохранялись указатели на первые вхождения подстроки в строку, т.е.
адреса на три буквы U, за которыми следуют буквы C и K.
В учебнике написано что для массивов указателей вообще не выделяется память, и как тогда быть?
Как наполнить массив указателями?
Постучитесь кто-нить в аську 268238560, объясните, иначе я на экзамен не попаду, очень нужен дельный совет!
По сути, могу даже яндекс деньгами рассчитаться за помощь, в разумных пределах конечно.

#include "stdio.h"


char * strf(char *s1, char *s2)
{
for (int m1=0;s1[m1]!='\0';m1++);
for (int m2=0;s2[m2]!='\0';m2++);

int ms[5];
int counter=0;
int ps=0;
for(int i=0;i<m1;i++)
{

if(s1[i] == s2[0])
{
int start = i;
for(int j=0;j<m2;j++)
{
if(s1[j+i] != s2[j])
ps = 1;
}

if(ps == 0)
ms[counter] = start;

}

}

return (int)ms[5];
}


void main()
{
char s1[] = "Terriuckble Fucker Stuckpidly";
char s2[] = "uck";


strf(&s1[0],&s2[0]);

for(int l=0;l<5;l++)
printf("%d \n", ms[l]);

}

Дикс
01.07.2007, 11:07
и ещё: где взять alloc.h? у меня в МС визуал си++ 6.0 его нет

nerezus
01.07.2007, 11:12
Юзай new/delete вместо (m/c)alloc/free

Ky3bMu4
01.07.2007, 14:44
Или вот: http://www.codenet.ru/progr/visualc/esmall/add.txt

sni4ok
01.07.2007, 15:51
Юзай new/delete вместо (m/c)alloc/free

плахой совет, ибо exception safe код при явном вызове delete получить трудно, потому правильный совет звучит так-
используйте умные указатели и обёртки над указателями вместо освобождения ресурсов на прямую.

Дикс
02.07.2007, 11:17
подскажите вот что:

entries = (char**)realloc(entries, arr_size*sizeof(char*));
такой строкой я заново переопределяю массив указателей entries или к нему как-то добавляется свободное место?
мне нужно в цикле добавлять в динамический массив указатели и каждый раз увеличивать его размер.


а дальше вот функция, которую я родил, если не лень, попробуйте скомпилить и скажите почему она ничего не выводит:

#include "stdio.h" // ввод/вывод
#include "stdlib.h" // работа с памятью


char ** fndr(char *s1, char *s2, int *n_entrs)
{
char ** entries = NULL; // массив с указателями на вхождения
int arr_size = 2; // изначально его размер 0
int counter = 0; // счётчик записей
int destroy = 0; // если все буквы совпали то она равна нулю

for(int s1_len=0;s1[s1_len] != '\0'; s1_len++); // s1_len - длина первой строки
for(int s2_len=0;s2[s2_len] != '\0'; s2_len++); // s2_len - длина второй строки

for (int i=0; i<s1_len; i++)
{
if(s1[i] == s2[0]) // если совпал первый символ
{
for(int g=0; g<s2_len; g++)
{
if(s1[i+g] != s2[g])
destroy = 1;
}

if(!destroy)
{


if(counter >= arr_size)
{
arr_size *= 2;
entries = (char**)realloc(entries, arr_size*sizeof(char*)); // добавление памяти
}

entries[counter] = &s1[i]; // добавление указателя в массив
counter++; // счотчик инкрементируем
}

}


} // конец перебора первой строки

*n_entrs = counter;
return entries;
}




void main()
{
char s1[] = "my house is you house in you house is wife";
char s2[] = "house";

char ** entries; // массив с указателями на вхождения
int n_entrs = 0; // кол-во вхождений

entries = fndr(s1, s2, &n_entrs);


for (int n=0; n<n_entrs; n++)
printf("%s \n", entries[n]);

free(entries);
}

Z0rd$23
06.07.2007, 19:38
Тут некоторые сортировки на С++, реализация. Если кому надо.
http://www3.msiu.ru/~roganov/2sem/sort.cpp

Piflit
15.09.2007, 18:07
дайте инфы по оверлеям с нуля плз. юзал поиск, не нашел

ЗЫ не нашел другого раздела, чтобы спросить=\

Ni0x
15.09.2007, 20:44
Piflit, я тебе уже писал, тебе нужно ознакомиться с документациями по формату PE, но уровень на котором ты находишься сейчас явно не предполагает ознакомления с этой темой. Лучше разберись с основнами для начала. Про указатели, ссылки почитай и т.п. И еще, не путай, если хочешь учиться покупай книгу именно по С, а не талмуд по С++ , ООП на данный момент тебе явно не нужно.
Оверлей – это то, что находится между физическим концом последней секции и концом файла. Конечно, оверлей может содержать и полезную для файла информацию.

wasm.ru -> статьи и форум, лучше чем там не ответят пожалуй нигде.

Piflit
15.09.2007, 20:53
Piflit, я тебе уже писал, тебе нужно ознакомиться с документациями по формату PE, но уровень на котором ты находишься сейчас явно не предполагает ознакмоления с этой темой. Лучше разберись с основнами для начала. Про указатели, ссылки почитай и т.п. И еще, не путай, если хочешь учиться покупай книгу именно по С, а не талмуд по С++ , ООП на данный момент тебе явно не нужно.
Спасибо за ответ. Я знаю, что ты много занешь, просто хочется услышать еще чьи-то мнения.

ph0en1x
20.09.2007, 21:01
Задание А:
Вычислить значение функции. Осушествить вывод значений вводимых исходных данных и результат вычисления значений функции, сопровождая вывод наименованиями переменных.

Функция: f= lg(x+1) и sin^2SQR|ax| (тут система уравнений)
Условие: x>1 ; x <=1
Исходные даннные: a=20.3


Задание Б:
Диапазон и шаг изменения аргумента: x [0.5;2] , дельтаX=0.1

Модифицыровать программу таким образом, чтобы вычислялось многократно значение функции при изменении агрумента в указаном диапазоне и с заданым шагом.
Организовать вывод значения аргумента, и вычисленного значения функции в виде таблицы.
Таблица функции Y(X):
X Y
.... ....
.... ....

P.S помогите:)

G1yuK
20.09.2007, 21:42
а на чём, т.е. каком языке это делать надо?

ph0en1x
20.09.2007, 21:46
а на чём, т.е. каком языке это делать надо?
извени забыл на С++

mmc
10.10.2007, 12:14
А помогите плиз решить такую задачу

Выполнить задания, выделяя цифры числа, хранящегося в переменной стан-дартного числового типа.
1. Определить, равен ли квадрат заданного натурального трехзначного числа, сумме кубов цифр этого числа.
2. Определить, есть ли среди первых трех цифр дробной части заданного по-ложительного вещественного числа, цифра 0.

lsass.exe
10.10.2007, 17:03
А помогите плиз решить такую задачу

Выполнить задания, выделяя цифры числа, хранящегося в переменной стан-дартного числового типа.
1. Определить, равен ли квадрат заданного натурального трехзначного числа, сумме кубов цифр этого числа.
2. Определить, есть ли среди первых трех цифр дробной части заданного по-ложительного вещественного числа, цифра 0.
на каком языке реализовывать?

rodok
10.10.2007, 19:04
!пРОФЕССИОНАЛЫ ДОРОГИЕ.....Намекните или поскажите как написать под Dos перехватчик системных вызовов!.....протоколировани е действий пользовотеля!()копир, перемещ, создание, удаление, печать!.....или Скажите где почитать! заранее признателен!либо на асм либо на C ))

Ky3bMu4
10.10.2007, 19:24
http://www.wasm.ru/article.php?article=1021007


P.S.
Во какие людям лабораторки дают!

rodok
11.10.2007, 18:25
Ky3bMu4,спасибо...большое .... но это же Win......а мне под дос писать надобно......если не сложно киньте ссылочку......перехвата вызовов в MS-dos

rodok
11.10.2007, 18:39
Или нет принципиальной разницы?

Ni0x
11.10.2007, 19:08
Принципиальная разница есть, и она огромна.
wasm.ru -> поиск
wasm.ru -> форум

MegaDeth
11.10.2007, 23:04
мне не по лабе но интересуют меня алгоритмы составления цепочек слов из набум набраных
(надо расставить их чтобы посл. буква была первой в следующем)
желательно пример на Делфи, или на любом другом языке либо описание хотябы. сам пробовал составлять но заморочка с оптимальным выбором слов (длинны цепиочки)

~Lexx~
11.10.2007, 23:26
Ну блин... тут можно написать охрененно дофига алгоритмов и все будут правильными.
Лично я бы писал так - создал массив объектов заполнил бы одно поле значениями длинны второе первыми буквами третье - последними. И затем перебирал бы их, создавая при этом древовидную структуру - и потом та линия которая длиннее - ту бы и использовал. Просто алгоритмов перебора, и составления деревьев, да еще и выбора максимальной цепочки - огромное множество. Все зависит от количества слов. Если не много или время не критично - можно просто попарно сравнивать. Но это бяка.

MegaDeth
12.10.2007, 14:49
~Lexx~, понятно, тоже мысль! я вот как хотел: берем последнюю букву из первого слова, ищем слово нач. на эту букву и присоединяем, потом посл.. букву, ищем...
но так будет зависеть от порядка расположения длина цепочки)

Sw33p
15.10.2007, 00:40
сорь, что лезу с глупыми вопросами, но сам решить вопрос не очень могу.
Надо составить прогу, которая бы считала сумму ряда чисел с максимальной точностью:
беск
E (сумма) {((-1)^[Vi]) * x^2i}/ [(i+2)* (i+3)
i=0

[Vi ] - целая часть числа-арифметического корня числа i

числитель (-1)в степени [Vi] * x в степени 2i
знаменатель (i+2)*(i+3)

х - задаётся юзером
i = переменная цикла


оч нужно решение задачи на C

D=P=CH= MOD=
17.10.2007, 15:58
Огромная прозьба помоч!
Сейчас VS не пашет у меня, написать не могу..
Задание 1:

Вычислить таблицу значений функции y=F(x) для значений аргумента x, изменяющегося в интервале от Xнач до Xкон c шагом dx. Для вычисления функции использовать собственную функцию, т.е. ввести функцию пользователя F(x).

Функция: y=0,9(3/x+a*lnx) Xнач: 13 Xкон: 34 dX: 2,5

Причем надо сделать все не в одном массиве, а такого вида:

#библиотеки
(задается функция)
{
основная часть, где задаются Хмин, макс, dX...
while
(xmin<хмакс)
}
{выполняется функция y=0,9*(3/x+a*log(x))}

+ должно выводиться ввиде таблицы.

То, что выложено на первой странице НЕ пашет!

+++++++++++++++++++++++++++++++

И есть второе задание, довольно простое.
Нужно написать прогу, в которой будут проверяться введенная дата
на правильность ввода.
вида: ДД.ММ.ГГГГ

Короче там иф, зен, элзэ ...
if
от 01 до 31
от 01 до 12
а год даже хз как лучше сделать...

Заранее спасибо!
+ 15 и огромный респект!

Techno
17.10.2007, 22:23
Нужна помощь...
Нужно написать программу, которая будет выводить сколько всего точек с целыми координатами на окружности с центром в начале координат радиусом R.
У меня нет мыслей :( Язык паскаль, можно си..........

Ni0x
19.10.2007, 22:32
D=P=CH= MOD= , сделал под твою функцию, только ты не сказал что за переменная a, сам подправишь, если что.

#include <math.h>
#include <iostream>
#define a 3
using namespace std;

double F(double x)
{
return 0,9*(3/x+a*log(x));
}

int main(void)
{
const double dx = 2.5, xmax = 34;
double xmin = 13;
while (xmin < xmax)
{
cout<<"F("<<xmin<<")= "<<F(xmin)<<endl;
xmin+=dx;
}
//system("pause");
return 0;
}

Во 2 задаче нужно выбирать с каких годов начинать счисление и какими заканчивать.

#include <iostream>

using namespace std;

int main(void)
{
char data[12], *k, *array[2];
short d, m, y;
cout<<"Enter: ";
cin >> data;
k = strtok(data, ".");
for(int i = 0; k; k = strtok(0, "."), i++)
array[i] = k;
d = atoi(array[0]);
m = atoi(array[1]);
y = atoi(array[2]);
if(d < 1 || d > 31)
cout<<"Invalid Day"<<endl;
else if(m < 1 || m > 12)
cout<<"Invalid Month"<<endl;
else if(y < 1000 || y > 2050)
cout<<"Invalid year"<<endl;
else
cout<<"Day: "<<d<<endl<<"Month: "<<m<<endl<<"Year: "<<y<<endl;
//system("pause");
return 0;
}

Немного извращено, надо будет - оптимизируешь сам.

D=P=CH= MOD=
19.10.2007, 23:00
Ni0x огромное спасибо!!!

ps а переменная "а" должна задаваться, ну это я уже сам.

~Lexx~
20.10.2007, 03:20
Нужна помощь...
Нужно написать программу, которая будет выводить сколько всего точек с целыми координатами на окружности с центром в начале координат радиусом R.
У меня нет мыслей :( Язык паскаль, можно си..........
Ну здесь тоже несколько вариантов решения - можно просто проходить все точки в квадрате -R---R и проверять подходят ли они под уравнение окружности R^2=x^2+y^2; а можно использовать вышку и искать через приближения.
в первом случае - два фора. )))

Techno
23.10.2007, 00:44
Хм.........на счёт второго случая думал, потом перестал, ибо с вышкой не дружу(
А вот первый возможно сделать.....но у меня сейчас своего компа нет(

r0
23.10.2007, 11:59
Прямоугольная плоскость задана координатами (x1,y1) - левая верх. точка и (x2,y2) - правая нижняя.
По границе ползет "удав" со скоростью V. Внутри области движется точка с скорость v1. Она начинает свое движение вниз от границы области на заданном расстоянии S от левого верхнего угла под углом A к нижней линии области. Точка движется, отражаясь от стенок, до тех пор пока не столкнется с "удавом". Обьекты начинают движение одновременно. При стократном столкновении программа завершает работу, оповещая пользователя.
Реализовать: Pascal

~Lexx~
23.10.2007, 13:32
Хм.........на счёт второго случая думал, потом перестал, ибо с вышкой не дружу(
А вот первый возможно сделать.....но у меня сейчас своего компа нет(

лень грузить студию - получи на пасе



Begin
readln(R);
x:=0;
N:=0;
(*Суммируем в первой четверти - в конце домножаем на 4 :-) *)
while x<R do begin
y:=0;
while y<=R do begin
if (sqr(R) = (sqr(x) + sqr(y))) then N:=N+1;
y:=y+1;
end;
x:=x+1;
end;

N:=N*4;

writeln(N);
end.


конечно это банальная отиска - можно еще дописать ограничения области перебора- чтобы не снуляперебирать, а начиная с некоторой точки, отстоящей от нуля. НО будет пахать и так.

.:baclan:.
25.10.2007, 15:02
нужна лаба на С: Сортировка с помощью включения используя метод деления пополам,
Пирамидальная сортировка. по возрастанию.
Необходимо написать программу, которая должна:
1. Создавать не менее 3х массивов так, чтобы их длины соотносились как N, N+a, N+2a. (Например, 1000, 3000 и 5000).
Чем больше массивов вы будете рассматривать – тем лучше.
2. Каждый из массивов необходимо заполнить произвольными (случайными) значениями.
При заполнении массивов необходимо придерживаться одной тактики, поскольку способ заполнение может иметь определенное значение.
Например, можно заполнить массив из 1000 элементов случайными числами от 1 до 5 или же от 1 до 10000 – скорее всего производительность алгоритмов сортировки будет отличаться.
3. Сохранить исходные массивы в файле или файлах (в текстовом виде).
4. Для каждого из исходных массивов, а также отсортированного в прямом порядке и отсортированного в обратном порядке, каждым из предложенных методов выполнить сортировку. Необходимо вычислить число сравнений, число перемещений и время работы каждого алгоритма, в каждом случае.
5. Результаты выполнения п.4. должны выводиться на экран или сохраняться в файле в таблице (таблицах):

Число сравнений / число перемещений / время
N Способ №1 Способ №2
Исходный массив Отсортированный массив Обратно отсортированный Исходный массив Отсортированный массив Обратно отсортированный
N
N+a
N+2a
N+3a

6. Результаты сортировки исходных массивов сохранить в файле (файлах), в текстовом виде.
7. Необходимо представить результаты в виде графика (графиков)
8. Необходимо быть готовым обосновать полученные результаты
9. Любые эксперименты, усовершенствования и творческий подход будут приветствоваться!
10. Необходимо ориентироваться в исходном коде программы и быть готовым ответить на дополнительные вопросы.
11. Необходимо подготовить и представить отчет о работе. В отчете должны быть представлены краткие описания используемых алгоритмов, должно быть приведено краткое описание работы программы и анализ полученных результатов.

очсрочно!те до 23:00 26.10.2007г

сроки неожиданно продлились до 3.11. помогите плз

Woland
28.10.2007, 23:42
Значить такой код на кнопочке.

Private Sub Cmd1_Click()
Dim i, j As Integer
Dim N, M As Integer
Dim Coun(), Film(), Mucs() As String
N = InputBox("Ââåäèòå êîëè÷åñòâî ñòðàí")
M = InputBox("?")
ReDim Coun(1 To N, 1 To M), Film(1 To N, 1 To M), Mucs(1 To N, 1 To M)
For i = 0 To N - 1
For j = 0 To M * 2
If j = 0 Then
Coun(i, j) = InputBox("Coun" & i)
List1(i).List(j) = Coun(i, j)
ElseIf (i / 2) - Fix(i / 2) = 0 Then
Film(i, j) = InputBox("Film" & i)
List2(i).List(j) = Film(i, j)
Else
Mucs(i, j) = InputBox("Mucs" & i)
List3(i).List(j) = Mucs(i, j)
End If
Next j
Next i
End Sub

и выдает ошибку на List1 в чем проблема?

FRik07
30.10.2007, 01:20
Разграничегие доступа

Всех приветствую. Вопрос вот в чем: задали в универе лабу: написать программу под Win для добавления учетных записей в системе и назначения им (группам) прав. Как такое реализовывется? Где об этом почитать? Если можно, пример..

p.s. по возможности написать руткит для работы программы не с админскими правами.

TTyck
31.10.2007, 17:05
Многоразрядные числа представлены в виде одномерного массива. Необходимо:
- реализовать операцию возведения многозначного числа в степень;
- реализовать операцию умножения многозначного числа на многозначное число;
Неоходимо реализовать на Pascal'e.
Заранее спасибо)

helat
06.11.2007, 00:08
http://www.kursovik.com/programming/109011.html


Расчет количества дней между датами

Программа расчитывает количество дней между двумя датами, заданных тремя чслами - год, месяц, день.
Расчет ведется по всем правилам, с учетом високосных годов.

нужен сабж на паскале (Pascal)

Dumkopff
06.11.2007, 00:53
helat


program data;

uses crt;
label escape,asd,dsa,contin;
var
m1:array[1..12] of integer;
m2:array[1..12] of integer;
a:array[1..3] of longint;
b:array[1..3] of longint;
err:boolean;
cd:char;
i:byte;
razn,d1,d2,mo1,mo2,y1,y2:longint;
begin
clrscr;
writeln('Input first date');
writeln('Day');
read(a[1]);
writeln('Month');
read(a[2]);
writeln('Year');
read(a[3]);
writeln('Input second date');
writeln('Day');
read(b[1]);
writeln('Month');
read(b[2]);
writeln('Year');
read(b[3]);

for i:=1 to 12 do
begin

if (i=1) or (i=3) or (i=5) or (i=7) or (i=8) or (i=10) or (i=12) then
begin
m1[i]:=31;
m2[i]:=31;
end
else
begin
m1[i]:=30;
m2[i]:=30;
end;
end;

if a[3]/4=int(a[3]/4) then m1[2]:=29 else m1[2]:=28;
if b[3]/4=int(b[3]/4) then m2[2]:=29 else m2[2]:=28;

clrscr;
if (a[1]<=0) or (b[1]<=0) or (a[2]<=0) or (b[2]<=0) or (a[3]<=0) or (b[3]<=0) then err:=true;
if (a[2]>12) or (b[2]>12) then err:=true;
if a[1]>m1[a[2]] then err:=true;
if b[1]>m2[b[2]] then err:=true;
if err=true then
begin
writeln('Error! Please check your data.');
goto escape;
end;

if a[3]>b[3] then
dsa:
begin
d1:=a[1];
mo1:=a[2];
y1:=a[3];
d2:=b[1];
mo2:=b[2];
y2:=b[3];
goto contin;
end;

if b[3]>a[3] then
asd:
begin
d1:=b[1];
d2:=a[1];
mo1:=b[2];
mo2:=a[2];
y1:=b[3];
y2:=a[3];
goto contin;
end;

if b[3]=a[3] then
begin
if a[2]>b[2] then goto dsa;
if b[2]>a[2] then goto asd;
if b[2]=a[2] then
begin
if a[1]>b[1] then goto dsa;
if a[1]<b[1] then goto asd;
end;
end;

contin:

razn:=0;
repeat
if y2/4=int(y2/4) then m1[2]:=29 else m1[2]:=28;
razn:=razn+1;
if (d2<=m1[mo2]) and (mo2<=12) then d2:=d2+1;

if (d2>m1[mo2]) and (mo2<12) then
begin
mo2:=mo2+1;
d2:=1;
end;
if (d2>m1[mo2]) and (mo2=12) then
begin
y2:=y2+1;
d2:=1;
mo2:=1;
end;
until (d1=d2) and (mo1=mo2) and (y1=y2);
escape:
writeln('Difference');
writeln(razn);
writeln('days');
cd:=readkey;
end.

не самая удачная реализация, но считает прально. =\

helat
06.11.2007, 01:06
прога то считает.но очень мудрёная.
у кого что ещё есть?
мб через юлианский день высчитывать

G1yuK
06.11.2007, 05:30
когда то сам искал, нужно было помочь человеку с задачкой, вот через Юлианский день

Program Jules;
{
All of the explanation needed is the source.

"May this routine make all your code run faster"
- Programmer's Prayer
}


Type
Str3 = string[3]; {for a month name}
str9 = string[9];
Var
Date1,Date2 : string[12]; {the dates to compare}
Number_of_days : integer; {Number of days between the two dates}

Function Number_of_Month (Month : str3) : integer;
{Returns the sequential number of the month; Jan=1 & Dec = 12}
Var
Temp : integer;
Dates : string[36];
Begin
{Notice how I scan the string. Less code than a case!}
Dates := 'JanFebMarAprMayJunJulAugSepOctNovDec';
Number_of_Month := round((pos(Month,Dates)-1)/3) +1;
End;

function Since_Beginning (month,day,year : integer) : integer;
var
DayCount : integer; {Holds the number of days}
Temp : integer; {Just a temporary holding integer}
Num_Leaps : integer; {Holds the number of leap years}
Begin
Num_Leaps := 0;
DayCount := 0;
Writeln;
Writeln('Scanning ',month,'/',day,'/',year,' ...');
for Temp := 1 to year do {Gets the number of leap years}
If (temp mod 4) = 0 then Num_Leaps := Num_Leaps + 1;
Writeln('Found ',num_leaps,' leap years occuring');
DayCount := (year * 365) + Num_Leaps; {calcs year & leap year}
Writeln('Making ',abs(daycount),' days in ',year,' YEARS');
DayCount := DayCount + Day; {adds in days}
Writeln('Plus ',day,' days makes ',abs(daycount),
' days in YEAR + DAY');

For Temp := 1 to Month-1 do
{
Couldn't help but put a large case here.
The number is the number of days in that month. Feb is 28 because
the leap year counter takes the leap year into effect
}
Begin
Case Temp of
1 : DayCount := DayCount + 31; {jan}
2 : DayCount := DayCount + 28; {feb}
3 : DayCount := DayCount + 31; {mar}
4 : DayCount := DayCount + 30; {apr}
5 : DayCount := DayCount + 31; {may}
6 : DayCount := DayCount + 30; {jun}
7 : DayCount := DayCount + 31; {jul}
8 : DayCount := DayCount + 31; {aug}
9 : DayCount := DayCount + 30; {sep}
10 : DayCount := DayCount + 31; {oct}
11 : DayCount := DayCount + 30; {nov}
12 : DayCount := DayCount + 31; {dec}
end; {case of temp}
end; {for loop}
Since_Beginning := DayCount;
Writeln('Plus ',month,' months makes ',abs(daycount),
' days since 00/00/00');
end; {function SINCE_BEGINNING}


Function Days_Elapsed (date1,date2 : str9) : integer;
Var
Month1,Day1,Year1,
Month2,Day2,Year2 : integer; {sets of dates}
Temp1,Temp2 : integer; {for the VAL function}
Begin
Month1 := Number_of_Month(Copy(date1,4,3)); {gets the month number}
Month2 := Number_of_Month(Copy(date2,4,3)); {gets the month number}
Val(copy(date1,1,2),Day1,Temp2); {get everything into numerics}
Val(copy(date2,1,2),Day2,Temp2); { " " " " }
Val(copy(date1,8,2),year1,temp2); { " " " " }
Val(copy(date2,8,2),year2,temp2); { " " " " }
Val(copy(date1,8,2),year1,temp2); { " " " " }
Val(copy(date2,8,2),year2,temp2); { " " " " }
Days_Elapsed := Since_Beginning(month2,day2,year2) -
Since_Beginning(month1,day1,year1);
{The difference of the two numbers}
end;

Begin {Main}
Date1 := '27 Jan 64'; {My birthday}
Date2 := '20 Nov 85'; {When I last edited this program}
ClrScr; {If you want originality, call an author...}
Writeln('JULES - Finds the number of days between two dates ',
'using a JULIAN manner.');
Writeln('Author - David Strickler');
Writeln('Address - FIDO 101/45 [Midnight DEC]');
Writeln;
Writeln('This program shows a pretty good way to find the number');
Writeln('of days between two dates. It is reasonably fast and');
Writeln('has a mininum of source code to it. Please use it as');
Writeln('you wish. The only right I claim, is that is it officialy');
Writeln('in the Public Domain.');
Writeln;
{Call the main function. Very neat & clean. Two in, one out}
Number_of_Days := Days_Elapsed(date1,date2);
Writeln('Number of days between ',date1,' and ',date2,' is ',
Number_of_days);
End.

http://pascal.sources.ru/datetime/jules.htm


Плюс ко всему прочему большой набор исходников для работы с Date на Pascal
http://pascal.sources.ru/datetime/index.htm

TOLIA
06.11.2007, 15:11
Заставка оператор создайте заставку :
******************
* Программа *
* вычесления чисел *
* Автор: *
* *
* *
******************
На Паскале создайте пожалуйсто, если такое ваще реально создать. Буду очень благодарен

И еще : Вывести сумму числа введенного с клавиатуры с числом 10

~Lexx~
06.11.2007, 15:45
))))
тоесть заставку? всмысле под винду - и там типа в спящем режиме выводит вреальном времени? Или просто перед выполнением программы вывсти на экран)))

TOLIA
06.11.2007, 15:54
ну наверное перед выполнением программы вывести на экран и это две разные программы

ZirroCool
06.11.2007, 16:01
И еще : Вывести сумму числа введенного с клавиатуры с числом 10
var
s:string;
a:integer;
begin
writeln('Vvedi 4islo');
readln(s);
a:=strtoint(s)+10;
writeln('rezultat '+inttostr(a)+' ...');
Writeln('Press Enter to continue');
Readln;
end.


И вот (http://delphi-faq.zoxt.net/1596.htm) по поводу заставки!

P.S.Не бойся гугля он не кусается!

TOLIA
06.11.2007, 16:15
Спасибо, а вставить этот код в Делпхи 7 нормально будет ?

ZirroCool
06.11.2007, 16:31
Да не то что нормально,а в самый раз!))

Red_Red1
09.11.2007, 00:25
2 helat
http://www.kursovik.com/programming/109011.html


Расчет количества дней между датами

Программа расчитывает количество дней между двумя датами, заданных тремя чслами - год, месяц, день.
Расчет ведется по всем правилам, с учетом високосных годов.

нужен сабж на паскале (Pascal)

Вот тоже решил написать свой вариан. Когда тестил, использовал ссылку которую ты привел. Также проверил програмку от G1yuK (от Dumkopff запустить неудалось). Вывод такой - програмка приведенная по ссылке и предложеная G1yuK ошибается на единицу если второй (большей) датой ставим високосный год. Тестил на таких примерах:
1984.01.01 Первая дата
1984.02.29 Вторая дата
Результат = 59
Если ставим
1984.01.01 Первая дата
1984.03.01 Вторая дата
Результат = 59 (Тоже !!!!)
Хотя 1984 год есть високосный и разница между 1 января и 1 марта - 60 дней.
Если взять даты:
1984.01.01 Первая дата
1984.12.31 Вторая дата
Результат = 364 (неверно, должно быть 365!!!)
Если ставим
1984.01.01 Первая дата
1985.01.01 Вторая дата
Результат = 366 (Правильно, НО КУДА ДЕЛСЯ 365 день?)
Еще ты жаловался на "мудреный" код от Dumkopff.
Привожу свою реализацию. Алгоритм и код очень простой, и у меня нету этой ошибки в високосным годом. Прошу потестить может и я где ошибся :)
Да и еще программа простая но есть минусы: не проверяет правильность введеной даты, не проверяет соответсвие дней месяцу т.е. можно написать 2000.02.35. Но при корректном вводе считает правильно (я надеюсь).

uses crt;
type
mymas=array[1..12] of integer;
const d1:mymas=(0,31,59,90,120,151,181,212,243,273,304,3 34); {Dlya NE vicokosnogo}
d2:mymas=(0,31,60,91,121,152,182,213,244,274,305,3 35); {Dlya vicokosnogo}
var data:string[10];
d:mymas;
god,mes,den,kol_v:integer;
kol_dney:array[1..3] of longint;
er,i:integer;{for error and cikl :)}
begin
clrscr;

for i:=1 to 2 do
begin
readln(data); {GGGG.MM.DD}
Val(Copy(data,1,4),god,er);
Val(Copy(data,6,2),mes,er);
Val(Copy(data,9,2),den,er);

{Proverka na "visokosnost"}
if ((god mod 4)=0) and (((god mod 100)<>0)or((god mod 400)=0)) then d:= d2 {Dlya vicokosnogo}
else d:= d1;{Dlya NE vicokosnogo}

kol_v:=((god-1) div 4)-((god-1) div 100)+((god-1) div 400);
kol_dney[i]:=god*365+kol_v+d[mes]+den;
end;

kol_dney[3]:=kol_dney[2]-kol_dney[1];
writeln(kol_dney[3],' Days');
write('HAI+IMUTE ''Enter'' DLYA BUXODA');
readln;
end.

Release
09.11.2007, 18:11
Помогите пжалста)

Строка символов представляет собой арифметическое выражение, состоящее из чисел, знаков арифметических операций(*, / , + , - ) и открывающихся и закрывающихся круглых скобок.Проверить его корректность

Реализация Pascal.

При этом соблюдается следующее:

1) Первым и последним символами должны быть числа или закрывающаяся скобка.
2) Перед и после арифметической операции должны быть числа или откр. скобка
3) Если скобка открывается, то она обязательно должна закрыться, кол-во скобок не ограничено.
4) Первой арифм. операцией должна выполнятся в скобках, затем умножение, деление, сумма, разность.

Слегка нудновато...но все же ;)

affa
12.11.2007, 03:24
Люди помогите плис с 3мя задачами на паскале

1)

дан 3х мерный массив Q(mxnxq) длинного типа. Умножить каждую строку страницы на столбец U(q) целого типа и посчитать в полученной матрице кол-во положительных, отрицательных и нулевыхэлементов

2)

в символьной строке заменить все гласные буквы на "_" , рассчитать кол-во цифр, русских, английских букв, а также остальных символов.

3)

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

MegaBits
12.11.2007, 21:47
Задание.
1. Определить структурный тип, содержащий следующие поля:
- символьный массив, используемый для хранения строки, например, с именем студента,
- указатель на тип char – для организации динамического массива, хранящего строку, например, с фамилией студента.
Остальные поля выбрать по варианту, приведенному в таблице 2.
Использовать одну из переменных для хранения некоторого идентификатора (номера); указатель на несимвольный тип – для организации динамического массива целых или плавающих чисел; другую переменную – для хранения размера этого массива;
Дополнить структурный тип любыми полями по своему выбору.
1. Переменная типа double;
2. Указатель на тип double;
3. Переменная символьного типа.
2. Определить функции:
• инициализации структуры;
• заполнения массива чисел;
• вывода на экран массива чисел;
• ввода информации в строки имени и фамилии и другие поля;
• вывода на экран всех полей структуры, кроме массива чисел;
• функцию освобождения динамической памяти.
У половины функций, по выбору студента, одним из аргументов должен быть указатель на структуру, у второй половины – ссылка на структуру.
3. Определить функцию main(), в которой создать:
• объект ранее определенного структурного типа
• указатель на этот структурный тип.
С помощью указателя создать динамический массив объектов структурного типа из 3-х – 4-х элементов.
Для объекта последовательно вызывать функции инициализации, заполнения массива чисел, ввода данных в остальные поля, показа массива, показа полей.
Для каждого элемента массива структур выполнить в цикле (for) функции инициализации, заполнения массива и ввода данных.
Вывести на экран содержимое полей каждого элемента массива структур в цикле (for) с помощью соответствующих функций.
В конце функции main() вызвать функцию освобождения памяти для объекта структурного типа и в цикле для каждого элемента массива объектов.
Удалить динамический массив.

mmc
13.11.2007, 12:46
сделайте пожалуйста на с++ задание в консоли

Для тестирования предусмотреть возможность задавать элементы массива различным образом: при описании с инициализацией, присвоением значений (в том числе случайных), или вводом необходимых значений.
1. Найти сумму элементов массива, являющихся степенями числа2.
2. Найти наименьшее среди чисел первой последовательности, не входящих во вторую.
3. Получить массив С(k), упорядоченный по возрастанию, путем слияния массивов A(n) и B(m), упорядоченных перед этим по возрастанию, где k = n + m.

DWORD
13.11.2007, 14:27
Вот мне интересно. Вы тут все считаете себя хорошими хакерами, а элементарных задач, с которыми даже у обычного незаинтересованного студента затруднений не возникает, решить не можете. Быть хакером по определению "хакера" подразумевает хорошие навыки в программировании, тем более программировании таких элементарных алгоритмов.

nerezus
13.11.2007, 15:53
А кто сказал, что они считают себя ниибаццо хакерами? )

Ky3bMu4
13.11.2007, 22:58
Было накидано за 15 минут... Тока 1 и 2 задания.


#include <tchar.h>
#include <iostream>
using namespace std;
bool isst2(int x,int s);
int _tmain(int argc, _TCHAR* argv[])
{
register int *ms1,*ms2,size,x,summ=0,y; //трахаться будем по полной
bool tmp; //херня
cout<<"Enter size of massives:"; //вводим размеры. Я тут у них одинаковый размер
cin>>size;
ms1 = new int[size];
ms2 = new int[size];

/*Вводим массивы*/
for(x=0;x<=size;x++){
cout<<"Enter "<<x<<" element of first massive:";
cin>>ms1[x];
cout<<"Enter "<<x<<" element of second massive:";
cin>>ms2[x];
}


/*1. Найти сумму элементов массива, являющихся степенями числа 2. */
for(x=0;x<=size;x++){
if(isst2(ms1[x],1)) summ+=ms1[x];
}
cout<<"Answer to 1: "<<summ<<endl; //незнал как по-англицки

/*2. Найти наименьшее среди чисел первой последовательности, не входящих во вторую.*/
summ=ms1[0]; //текущее мах число
for(x=0;x<=size;x++){
tmp=1;
for(y=0;y<=size;y++){
if (ms2[y]==ms1[x]) tmp=0; //входит :(

}
if(tmp && ms1[x]<summ) summ = ms1[x];
}
cout<<"Answer to 2"<<summ<<endl;


return 0;
}
/*Является или число степенью числа 2*/
bool isst2(int x,int s)
{
s*=2;
if(s==x) return 1;
else if(s>x) return 0;
else isst2(x,s);

}

TTyck
15.11.2007, 16:39
Помогите написать ! Задание :
Зарисовать весь екран 12-угольниками , 6-угольниками , 4-угольниками - ОДНОВРЕМЕННО ! Пробовал по формулам поворота сначало нарисовать 12-угольник , потом со всех сторон 4-угольники и смещять по екрану относительно точки - не дорисовует последнюю сторону 12-угольника!!!
Подскажыте кто знает ...
Писать на Turbo-pascal......
N-уголники должны быть правильные?

affa
16.11.2007, 16:20
Люди помогите плис с 3мя задачами на паскале

1)

дан 3х мерный массив Q(mxnxq) длинного типа. Умножить каждую строку страницы на столбец U(q) целого типа и посчитать в полученной матрице кол-во положительных, отрицательных и нулевыхэлементов

2)

в символьной строке заменить все гласные буквы на "_" , рассчитать кол-во цифр, русских, английских букв, а также остальных символов.

3)

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

GrAmOzEkA
16.11.2007, 17:46
Собсно мож кому пригодятся мои задачки по Численным методам на С++

*********************
* _____ *
* |_____|____ *
* O|-O-O-|O *
* | o | *
* | | *
* |_-U-_| *
*Coded by GrAmOzEkA *
*********************
В архив входят:

Программа № 1 Вычислить функцию.
Программа № 2 Параболическая интерполяция (2.1).
Программа № 3 Метод Рунге-Кутта (3.1).
Программа № 4 Вычисление определенного интеграла по формуле Симпсона (4.1).
Программа № 5 Вычислить площадь (5.1).
Программа № 6 Поиск минимума функции (6.1, 6.2).
Программа № 7 Метод итераций для решения системы линейных алгебраических уравнений (7.1).

Скачать: http://ifolder.ru/4159877

Moscow
18.11.2007, 13:39
Приветствую.
Нужна программа на C++ в консоли с расчетом чего либо, кроме " Расчитаем итоговую оценку студента "

inv
18.11.2007, 13:47
напиши в асю)токо быстрее я скоро в оф

MegaBits
18.11.2007, 14:46
1. Определить массив, который будет использован для организации очереди и стека. Тип массива double.
Определить структурный тип, используемый для представления элементов стека, организованного в виде динамической цепочки звеньев.
2. Разработать функции занесения и извлечения данных для простой очереди, циклической очереди, стека на основе массива и на основе связного списка. Обратить внимание на аргументы функций. Можно использовать перегрузку функций.
3. В функции main() проверить работу простой и циклической очередей и обоих вариантов организации стека. Для простой очереди и стека на основе массива добиться их переполнения. Сделать то же самое для циклической очереди. Сделать выводы.
4. Проконтролировать при операциях занесения и извлечения данных изменение индексов записи и считывания для простой и циклической очередей. Проконтролировать изменение индекса вершины стека для массива и адреса вершины стека для списка.

С меня ++.

barret
18.11.2007, 15:19
Прошу помощи по написанию программы "клавиатурный шпион" на чистом асме. Буду благодарен за любую инфу предоставленную по данной теме.

da_ff
18.11.2007, 15:49
barret могу дать на си переписать думаю будет не проблема

barret
18.11.2007, 16:29
da_ff спасибо, но на си у меня тоже есть, вот только как раз проблема с перепиской, тк уже второй день бьюсь, и ничего не получается (в асме не силен), вот и подумал может у кого есть какие-нить наброски на асме.

043nKRuT0y
19.11.2007, 21:05
N-уголники должны быть правильные?
Да !!! Только опуклые-правильные N-угольники !!!!

DWORD
19.11.2007, 23:54
da_ff спасибо, но на си у меня тоже есть, вот только как раз проблема с перепиской, тк уже второй день бьюсь, и ничего не получается (в асме не силен), вот и подумал может у кого есть какие-нить наброски на асме.
А смысл писать это на ассемблере?

barret
20.11.2007, 23:34
А смысл писать это на ассемблере?
Да смысл в том, что лаба по асму, в универе. На СИ впринципе и без проблемм можно самому написать, но вот в асме, пока на такое не способен :(

ZaCo
21.11.2007, 00:06
2barret попробуй попросить свой C-компилятор выдать асм-листинг. только вот лучше пользоваться наверное vc, тк распространен, а gcc выдаст код по соглашению at&t, где все справа-налево. естественно надо отключить любую оптимизацию, для простоты кода.

>>cl source.c /TC /c /Gz /Fa "source.asm"

radioelectron
25.11.2007, 15:09
Задание: найти сумму элементов матрицы {aij} (3 на 3) расположенных в строках с отрицательными элементами на главной диагонали.

Это нужно сделать на Паскале. Подскажите, пожалуйста.

Ky3bMu4
25.11.2007, 15:39
Тут даже цикла не надо. Давно я паскаль учил,но...

if (matrix[0][0]<0)
then
summ:=matrix[0][0]+matrix[0][1]+matrix[0][2];
end;

if (matrix[1][1]<0)
then
summ:=matrix[1][0]+matrix[1][1]+matrix[1][2];
end;

if (matrix[2][2]<0)
then
summ:=matrix[2][0]+matrix[2][1]+matrix[2][2];
end;


P.S.

Исправил . на ; ;) .

TTyck
25.11.2007, 17:22
Задание: найти сумму элементов матрицы {aij} (3 на 3) расположенных в строках с отрицательными элементами на главной диагонали.

Это нужно сделать на Паскале. Подскажите, пожалуйста.
Вот еще вариант:

...
summ:=0;
for i:= 1 to N do begin
for j:= 1 to N do begin
If matrix[i,i] < 0 then
summ:= summ + matrix[i,j];
end;
end;
...

043nKRuT0y
25.11.2007, 20:35
Задание :
Зарисовать весь екран 12-угольниками , 6-угольниками , 4-угольниками - ОДНОВРЕМЕННО ! Пробовал по формулам поворота сначало нарисовать 12-угольник , потом со всех сторон 4-угольники и смещять по екрану относительно точки - не дорисовует последнюю сторону 12-угольника!!!

!!! Только правильные n-угольники !!!

Подскажыте кто знает ...
Писать на Turbo-pascal......

G1yuK
26.11.2007, 06:10
сделай несколько процедур (зарисовка 12и, зарисовка 6и и тд) в какой то координате(в них будет передаваться x и y), создай 2 цикла в одном увеличение по x , в следующем по y, в последнем сделай i:=random(3); , а ниже в операторе case, если i равно
1: нарисовать 12и
2: 6и
и тд

Тогда у тебя в ряд будут идти разные n угольники и заполнится весь экран( ну смотря какие конечно числы по x и y задашь)

ЗЫ Извини что без кода, спать жутко хочется, но раз сам пытался, то тебе не сложно реализовать будет

VERte][
27.11.2007, 00:04
Тут было у меня заданьице в универе: на основе рекурсивной функции вывести все перестановки произвольных чисел, выкладываю, ибо алгоритм довольно интересный и не сразу допрёшь(на паскале):

program perestanovki(input, output);
const n=5;
type arr=array[1..n] of integer;
var x:arr; i:integer;

procedure trans(x:arr; k:integer);
var i,temp:integer;
begin
if k=n then begin for i:=1 to n do write(x[i],' '); writeln; end
else
begin
for i:=k to n do
begin
temp:=x[k];
x[k]:=x[i];
x[i]:=temp;
trans(x,k+1);
end;
end;
end;

begin
for i:=1 to n do read(x[i]);
trans(x,1);
readln;
readln
end.

DC Sergey
03.12.2007, 20:44
Помогите
прога на С++

Дана строка символов.Подсчитать,скольк о раз среди символов строки встречается буква x

Ch3ck
03.12.2007, 21:28
int charcount(char* s,char x)
{
int count = 0,i=0;
while(s[i])
{
if (s[i] == x) count++;
i++;
}
return count;
}

Murena
03.12.2007, 21:58
Нужно получить квадратную матрицу для n через динамические массивы.
Например для числа 5:
12345
23450
34500
45000
50000

Вот сделала через обычные масивы, но работает почему-то только для нечетных чисел:(
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int main()
{
clrscr();
int i,j;
int N;
int matr[11][11];
cout<<" Vvedit: ";
cin>>N;
for(j=0; j<=N; j++)
{
for(int i=0; i<=N; i++)

{
if ((i=(0+i)) && (j=(N-j))) matr[i][j]=0;
if (i==j) matr[i][j]=N;
if (i>j) matr[i][j]=N-i+j;

};
};
for(j=1; j<=N; j++)
{
for(int i=N; i>=1; i--)
{
cout << matr[i][j] << "\t";
};
cout << endl;
};
getch();
return 0;
}
Помогите пожалуйста!

__mad
04.12.2007, 00:35
#include <stdio.h>
#include <windows.h>

int main(int argc,char**argv)
{
if(argc!=2){printf("%s <size matrix>\n",argv[0]);return 1;}
argv=(char**)malloc(argc=atoi(argv[1]));
for(int i=0;i<argc;i++)
*(argv+i)=(char*)malloc(argc);
for(i=0;i<argc;i++)
{
for(int n=0;n<argc;n++)
printf("%d",argv[i][n]);
printf("\n");
}
return 0;
}
ну дальше наверн разберёшься)

Tyc00n
05.12.2007, 20:30
Добрый вечер ;)
Задание: Описать класс "товары на складе". Предусмотреть возможность работы с произвольным числом записей, поиска записи по какому-либу признаку (например, по названию) добавление и удаление записей.
Программа должна содержать меня, позволяющее осуществлять проверку всех методов классов :)
Всё,надеюсь на вашу помощь :)
c++

Shawn1x
06.12.2007, 08:20
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++

Murena
07.12.2007, 20:07
ну дальше наверн разберёшься)
Не могу (

zaq
09.12.2007, 19:01
помогите решить задачу, ток полностью, по ТВ не шарю ><

Составить двумерный массив.
Найти среднее арифметическое каждой строки,вывести значения в одномерный массив и произвести сортировку массива по убыванию.

пасиба заранее.

Shawn1x
09.12.2007, 19:33
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++

Jakal
09.12.2007, 21:12
Помогите с задачей!
Построение кратчайшего остова ориентированного и неориентированного графа с использованием алгоритмов Краскала и Прима

zaq
10.12.2007, 12:53
Пока дождешься помощи, другие уже помогут :P

Составить двумерный массив.
Найти среднее арифметическое каждой строки,вывести значения в одномерный массив и произвести сортировку массива по убыванию.

var
M1 : array[1..10,1..10] of real;
M2 : array[1..10] of real;
i,j : integer;
S : real;
IndexMax : integer;

begin
{заполнить массив случайными значениями от 0 до 1000}
Randomize;
for i:=1 to 10 do
for j:=1 to 10 do
M1[i,j] := Random(1000);

{вывести исходный массив}
for i:=1 to 10 do
begin
for j:=1 to 10 do
Write(M1[i,j]:1:1,' ');
WriteLn;
end;

{посчитаем средние значения строк и занесём их в массив}
for i:=1 to 10 do
begin
S := 0;
for j:=1 to 10 do
S := S + M1[i,j];
M2[i] := S / 10;
end;


{напечатаем массив M2 ДО сортировки}
WriteLn('Средние значения:');
for j:=1 to 10 do
Write(M2[j]:5:2,' ');
WriteLn;

{сортировка методом "пузырька" (методом простого выбора )

Выбирается максимальный элемент массива
и меняется местами с первым элементом массива.
Затем процесс повторяется с оставшимися элементами и т. д. }

for i:=1 to 9 do begin
IndexMax := i; {предварительно считаем, что первый элемент наибольший}
{ищем индекс максимального элемента}
for j:=i+1 to 10 do
if M2[j]>M2[IndexMax] then IndexMax := j;

{меняем местами элементы массива с индексами i и IndexMax
(ну, если они не равны, конечно) }
if i<>IndexMax then begin
S := M2[IndexMax];
M2[IndexMax] := M2[i];
M2[i] := S;
end;
end;

{напечатаем массив M2 после сортировки}
WriteLn('Средние значения после сортировки:');
for j:=1 to 10 do
Write(M2[j]:5:2,' ');

end.

Shawn1x
10.12.2007, 19:51
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++

poza89
10.12.2007, 22:00
Лююддиии, помогите пожалуйста. Нужно написать две отдельные проги не используя классы (сам не знаю чего)...Значит задания:
Прога №1:
Обчислить* самое маленькое сложение (умножение) трех соседних элементов и их индексы, наименьший элемент этой тройки, количество ненулевых элементов, расположенных к этой тройке
Структура программы:
1. Команды препроцессора
2. Описание глобальных переменных Аmax и j
3. Функция input()
4. Функция output()
5. Главная функция main()
6. Функция int amax_calcul (void)
7. Функция void sum_number_calcul (int *sa, int *num)
8. Функция void amax_a1_exchange (void)

Прога №2:
Есть ли среди чисел заданой последовательности целых плюсовых чисел (0х0563 , 0х1d6b , 0x261a , 0x259e) числа, у которых цифры разположены в спадаючем порядке, например: 124; 96531

Заранее благодарен и говорю большое человеческое СПАСИБО за помощь!!!

Meister
11.12.2007, 02:10
Добрый день, а с лабораторной в программе FoxPro 9.0 может кто-нибудь помочь? В частности с функцией поиска? 8)

Sinex
11.12.2007, 19:45
Задание на лабораторную работу.
1. Составить программу на языке C++. Получить теоретическую оценку числа элементарных операций.
2. Включить в программу строки счетчика элементарных операций в соответствии с принятой методикой.
3. Отладить полученную программу.
4. Для различных значений размерностей массива получить значения счетчика операций с(N).

Задания

1.Дана матрица А(N, М). Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (считать, что он единственный), оказался в верхнем левом углу.

2.Дан одномерный массив А(N). Определить количество инверсий в этой последовательности (т.е. таких пар элементов, в которых большее число находится слева от меньшего: xi>xj при i<j ).

Помогите пожалуйста, очень надо, всем кто как-нибудь поможет +2 ;)

trOid
12.12.2007, 17:58
Помогите сделать на delphi
Дан двумерный числовой массив. Упорядочить по убыванию элементы тех столбцов, в которых есть хотя бы один элемент, равный 5 (сортировка массивов)

Shawn1x
12.12.2007, 18:56
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++

SHLAK
13.12.2007, 02:12
Вот хз, вроде все просто, но перетрахал себе мозги с этими двумя последними лабами, че-то не то получается. Единственный язык который блин с горем-пополам знаю так это Дельфи, и то хрен знает как сдал практику.

Вообщем за мегО спасибо и + помогите решить.

На C++

1. Напишите программу, которая по заданному натуральному числу определяет его первую и последнюю цифры. Определение и вывод цифр оформите в виде функции.
2. Напишите программу с использованием функции Perim. В эту функцию из программы передаются координаты вершин треугольника А(х1, у1), В(х2, у2), С(хЗ, уЗ), а она возвращает периметр треугольника. Если такой треугольник не существует, то выдается соответствующее сообщение.

1. Вычислите сумму элементов с нечетными номерами.
2. Преобразуйте массив так, чтобы элементы массива поменялись местами (первый — с последним, второй — с предпоследним и т.д.).
3. Вычислите сумму элементов, находящихся между первым и последним отрицательными элементами.
4. Из данного массива и другого массива того же типа, но другой размерности сформируйте общий массив и вычислите сумму положительных элементов, стоящих на нечетных местах.

VERte][
13.12.2007, 02:29
вот что должно быть в ф-ции для первого задания (где 1я и последняя цифры числа k)

void xek(const int k, int& begin, int& end)
{
end=k%10;
begin=k;
while (begin/10>9)
{
begin=begin/10;
}
}

до вывода надеюсь сам догадаешься)

SHLAK
13.12.2007, 03:16
да вывод фигня)
VERte][ большое спасибо... блин я значит в самом начале тупил) и строчек на 3 больше получалось :D

Sinex
13.12.2007, 09:01
Может с моим поможете,замучался уже, актуально еще неделю. :confused:

VERte][
13.12.2007, 23:35
2 Sinex (1е задание с загоном наибольшего эл-та в левый верхний угол) на вскидку, не компилировал, ф-цию zapolnenie сам допишешь надеюсь...

void zapolnenie(int a[][], int n, int m);
void perestanovka(int a[][], int n, int m);
const int m(10),n(10);
int main()
{
int a[n][m];
zapolnenie(a);
perestanovka(a);
return 0;
}

void perestanovka(int a[][], int n, int m)
{
int max,str(0),stb(0),j(0),i(0),temp;
max=a[0][0];

for(int i(0); i<n; i++)
for(int j(0); j<m; j++)
if (a[i][j]>max)
{
str=i; stb=j; /*нахождение строки и столбца где максимальный элемент*/
}

if (str!=1)/*перестановка строк 1 и той где макс элемент*/
{
while (j<m)
{
a[1][j]=temp;
a[1][j]=a[str][j];
a[str][j]=temp;
j++;
}
}

if (stb!=1)/*перестановка столбцов 1 и того где макс элемент*/
{ while (i<n)
{
a[i][1]=temp;
a[i][1]=a[i][stb];
a[i][stb]=temp;
i++;
}
}
}

Sinex
13.12.2007, 23:57
Допишу, спасибо большое =)

VERte][
14.12.2007, 01:00
2 Sinex 2е задание про инверсии(zapolnenie тоже сам допиши):

#include<iostream>
using namespace std;
void zapolnenie(int a[], int n);
const int n(10);
int main()
{
int a[n], count(0);
zapolnenie(a);

for (int i(0);i<n-1;i++)
for(int j(i+1); j<n; j++)
if (a[j]<a[i]) count++;

cout<<cout;
return 0;
}

Shawn1x
14.12.2007, 15:31
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++

poza89
14.12.2007, 21:11
Народ помогите пожалуйста с моими заданиями...на понедельник нужны позарез, а то...ппц будет мне

FK2703
16.12.2007, 05:20
очень прошу помощи с задачей "Золотая гора" ("Треугольник") на C

Входной файл input.txt
Выходной: output.txt

Идея-подсказка, предложенная мне: "Реализация проста-делай двумерный массив и пускай цикл снизу. Последняя строка совпадает с исходной, а дальше подымайся вверх и выбирай максимум из двух. a[0][0] твой ответ"

Пример правильного input.txt:
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5


Первое число во входном файле (5) - количество строк в треугольнике. Соответственно, остальные - его заполнение. Надо найти сумму чисел, расположенных на пути, начинающемся в верхней точке треугольника и заканчивающимся на основании.
Условия:
1. Каждый шаг на пути может осуществляться вниз по диагонали влево или вниз по диагонали вправо.
2. Число строк в треугольнике - от 1 до 100
3. Треугольник составлен из простых чисел от 0 до 99

Выходные данные.
В файл output.txt записывается только наибольшая сумма в виде целого числа. Для треугольника из примера правильно работающая прога запишет: "30"

Если не сдам в понедельник - не допустят до сессии, хотя это - последний оставшийся зачёт(


кол-во плюсов-благодарностей,какое хотите за реализацию задачи, заявляйте в пм

poza89
18.12.2007, 20:07
Лююддиии, помогите пожалуйста. Нужно написать две отдельные проги не используя классы (сам не знаю чего)...Значит задания:
Прога №1:
Обчислить* самое маленькое сложение (умножение) трех соседних элементов и их индексы, наименьший элемент этой тройки, количество ненулевых элементов, расположенных к этой тройке
Структура программы:
1. Команды препроцессора
2. Описание глобальных переменных Аmax и j
3. Функция input()
4. Функция output()
5. Главная функция main()
6. Функция int amax_calcul (void)
7. Функция void sum_number_calcul (int *sa, int *num)
8. Функция void amax_a1_exchange (void)

Прога №2:
Есть ли среди чисел заданой последовательности целых плюсовых чисел (0х0563 , 0х1d6b , 0x261a , 0x259e) числа, у которых цифры разположены в спадаючем порядке, например: 124; 96531

Заранее благодарен и говорю большое человеческое СПАСИБО за помощь!!!

может найдутся разберающиеся люди и помогут с лабами??!!!!
с меня ++ гарантированы
будьте людьми, помогите. просто без этих лаб меня попрут((( с универа, тем более что разберающимся людям их быстро делать.....

***Dr.Freez***
19.12.2007, 12:30
Помогите в написании задания для курсача асм и тоже самое на паскале
Дана строка "YoU ArE DeAd!!!" перевести её в вверхний регист, затем в нижний и вывести все три сторки(искодня, верхний регистр, нижний)....
есть маленькие наработки
masm
.model small
.486
.data
s1 db 'YoU ArE DeAd!!!'
len equ $-s1
db '$'
.code
start:
mov ax, @data
mov ds, ax
mov es, ax

cld ; установить флаг направления в сторону увеличения
; адресов
mov cx, len ; размер строки s1 в СХ
lea si, s1 ; адрес первого элемента в SI
mov di, si ; тот же адрес в DI

next:
lodsb ; загрузить символ строки s1 в регистр AL
cmp al, 65 ; AL < 'a'?
jb skip ; вне диапазона, пропустить
cmp al, 90 ; AL > 'z'
ja skip ; вне диапазона, пропустить
add al,32 ; преобразовать символ из диапазона в 'A' - 'Z'
; в символ из диапазона 'a'-'z'

;next:
; lodsb ; загрузить символ строки s1 в регистр AL
; cmp al, 97 ; AL < 'a'?
; jb skip ; вне диапазона, пропустить
; cmp al, 122 ; AL > 'z'
; ja skip ; вне диапазона, пропустить
; sub al, 32 ; преобразовать символ из диапазона в 'a' - 'z'
; ; в символ из диапазона 'A'-Z'
skip:
stosb
loop next
jmp exit
exit:
lea dx, s1
mov ah, 09h
int 21h
mov ah, 4ch
int 21h
end start

KEZ
19.12.2007, 15:52
Добрый день!
Задание: используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
На С++


День добрый. Нихуево вы наглые стали, студенты. Ещё бы слово "Смирно бля! Всем решать я сказал!" дописал.


с универа, тем более что разберающимся людям их быстро делать.....


вопрос - а зачем ты в такой институт/колледж/етц пошел?


Помогите в написании задания


ЭЭ..Как помочь? Могу помолиться. Или имеется ввиду так между делом "напишите за меня и дайте готовый код"... ? Ты же привел наработку, зачем тебе помогать?...

Если бы я сюда скидывал каждый вопрос, на который не могу найти ответ - у меня бы уже постов было тысяч десять. Есть очень хорошая традиция.. Помогать надо осмысленно, т.е. это не значит "писать код за тебя". Тем более, когда чел идет учится в крутой институт, для того, чтоб потом на форуме писать "я полный нуб и ничего не понимаю".

***Dr.Freez***
20.12.2007, 04:00
ЭЭ..Как помочь? Могу помолиться. Или имеется ввиду так между делом "напишите за меня и дайте готовый код"... ? Ты же привел наработку, зачем тебе помогать?...

Ну и всё...на этом всё дело закончилось....дальше я хз ч0 с этим делать....а паскаль я вообще не знаю, ....а преподу пох....

Дикс
20.12.2007, 08:54
#include <stdio.h>
#include <iostream.h>
#include <string.h>

struct tree {
char value[10];
struct tree * parent;
struct tree * left;
struct tree * right;
} newTree;



void output (tree &newTree){
cout << newTree.value;

if(newTree.right->value != NULL)
output (*newTree.right);
}


void main(){

strcpy(newTree.value, "sim");

char text[10] = "sim2";

strcpy(newTree.right->value, "sim2");

output(newTree);
}

тока один вопрос - у меня студия глючит или эта прога действительно вылетает с ошибкой? вроде ничо криминального я там пока не написал, всего-то надо занести в структуру новое значение и попытаться рекурсивно вывести это бинарное дерево.

ZweR
20.12.2007, 10:33
Помогите решить модуль :) если есть время у кого-то.
http://www.mirnagrad.com/1.jpg

maxclk
20.12.2007, 13:08
Лаба по C++

"Написать программу, которая создаёт очередь целых чисел вводимых с клавиатуры. Упорядочить эту очередь по возрастанию и вывисти её на экран."

struct Node
{
char data;
Node* next;
};
int main()
{
Node *firstPt=NULL;*token=NULL;*prev=NULL;
cout<<"Введите строку символов"
char ch, flag=1;
do
{
ch=getche();
token=new Node;
token->data=ch;
token->next=NULL;
if (flag)
{
firstPt=token; flag=0;
}
else prev->next=token;
prev=token;
}while(ch!='\r');
cout<<endl;
cout<<"Очередь:\n";
token=firstPt;
while(token)
{
cout<<token->data;
token=token->next;
}
cout<<endl;
getch();
return 0;

Это код создания самой очереди, но нет сортировки.
Немогу отсортировать эту очередь :( помогите плз

Neovild
20.12.2007, 18:29
Сортировка выбором (selection sort).
Ищешь наимменьший элемент массива, который ставишь на место A[1], ишешь второй наименьший элемент, который ставишь на A[2]... Этот процесс продолжаешь для первых n-1 элементов массива.
Раборает за O(n*n).
for i:=1 to SIZE-1 do begin
min:=i;
for j:=i+1 to SIZE do
if a[j] > a [min]
then min:=j;
buf:=a[i]; a[i]:=a[min]; a[min]:=buf;
end;

Имхо, если брать произвольные числа, то heap-sort самое то- n*lg(n) (Но (!) хоть quick-sort в плохих случаях работает за n*lg(n) . . . . . n*n, тесты показывают, что он быстрее, связано с хз какой записью на винче).
З.Ы. Почитай Кормана.

t3xHuK
20.12.2007, 19:51
доброго времени суток )

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

вот что наваял, компилится но не работает (


TITLE vuvod_str.

.386
INCLUDE Study32.inc

WriteString PROTO
ReadString PROTO
WriteChar PROTO
WaitMsg PROTO
ExitProcess PROTO

.DATA
str_in byte 100h dup(?)
str_buff byte 0ffh dup(?)
str1 byte "vvedite stroky simvolov ne bolwe 255 slimvolov",0dh,0ah,0
.CODE
main PROC
mov edx, offset str1
call WriteString ;vuvod priglaweni9 vvesti simvolu
mov ecx, 0ffh
call ReadString ; edx - ukazivaet na bufer, ecx- razmer bufera -1 (rezerv pod 0), vozvrawaet v eax koli4estvo vvedenux simvolov
mov ecx, eax ; deistvitelnoe koli4estvo vvedenux simvolov,
lea ebx, str_in ; zapiwem adres v ebx
mov eax,0 ; obnulim na vs9kii sly4ai
mov edx,0 ;edx toje
L1:
mov al,byte ptr [ebx]+[edx]
cmp al, 20h
je L2 ;esli probel
inc edx ; uveli4im smewenie na 1
call WriteChar ;vuvodim simvol
cmp ecx,0 ; proverim ne dowli li do konca stroki
je L3 ;esli dowli go out
dec ecx ;umenwim koli4estvo ostavwuxs9 cuklov
jmp L1 ; go na sled simvol
L2:
call crlf ;perevod koretki
inc edx ; probel toje simvol
dec ecx
cmp ecx,0 ; proverim ne dowli li do konca stroki
jnz L1
L3:
call WaitMsg ; daem vozmojnost s4itat' rezult
call ExitProcess ; korektnui vuxod iz progi
main ENDP
END main


на деле при запуске после считывания ничего не выводит, немогу разобратся где ошибся...
знаю что можно было использовать repe но незнаю как ) было мало практики и примеры на практике были не сложные

Shawn1x
20.12.2007, 20:46
А че это за язык у тя?

t3xHuK
20.12.2007, 21:09
А че это за язык у тя?
утром был асм... (масм + библиотека study32.inс)

KEZ
20.12.2007, 21:14
Поступило предложение воспользоваться отладченгом и посмотреть в риал-тайме где спряталась ошибко!

t3xHuK
20.12.2007, 21:23
Поступило предложение воспользоваться отладченгом и посмотреть в риал-тайме где спряталась ошибко!
скачал олли дебаг, открыл, но тама совсем все не так)
на то чтоб без опыта разобраться что оно там накомпилило надо минимум день...

З.Ы. просто фактически это мой 3 кодинг на асме... отладчиком еще не умею пользоватся...
пошел искать инфу по олли, но это нада на завтра...

закачал архив с исходником и плодами компиляции
брать тут (http://upload.com.ua/link/900055476)
компилил след строкой
ML /nologo -Zi -c -Fl -Sg -coff str_v_br.asm
линковал этой:
LINK32 /nologo str_v_br.obj user32.lib kernel32.lib Study32.obj /SUBSYSTEM:CONSOLE /DEBUG /MAP

tclover
21.12.2007, 11:17
Помогите в написании задания для курсача асм и тоже самое на паскале
Дана строка "YoU ArE DeAd!!!" перевести её в верхний регист, затем в нижний и вывести все три сторки(искодня, верхний регистр, нижний)....
есть маленькие наработки
а что ты не понимаешь?
на ассемблере всё просто -
заглавные буквы от A до Z имеют аски коды 41h-5Ah, строчные - 61h-7Ah. И все они ничем друг от друга не отличаются, кроме пятого бита(здесь был KEZ). Меняя его, ты сможешь выводить как в верхнем регистре, так и в нижнем.
например буква а
A:01000001 и a:01100001
Используй xor.
А как на паскале хз =) я его не знаю

KEZ
21.12.2007, 11:46
Автор, без отладченга ты сильно заебешься...

Открываем, попадаем на первую инструкцию
http://img178.imageshack.us/img178/8314/99811595ov5.jpg

F7 - это шаг внутрь, F8 - поверх.
отличие - например, если будет call, то F7 шагнет внутрь процедуры, а F8 - перешагнет этот CALL
F9 - запуск, F2 - брейк-поинт. ENTER - посмотреть что там находится (по джампу, колу или рету, и тп), не переходя.
Нажимаем F8:

http://img20.imageshack.us/img20/6029/66487815xx4.jpg

Идем F8 или F7, проходя твой код, скоро попадаем на
call ReadString
там все останавливается (из-за ReadConsole()) и надо ввести строку.

http://img20.imageshack.us/img20/8692/91993258gu1.jpg

Ну и вот так, пошагово или с брекпойнтами, выполняя, смотрим где логика не соответствует работе программы.
Отладченг - это сила, без него - все бы вымерли давно.

tclover, бита а не байта.

tclover
21.12.2007, 11:54
ага. интересно, почему я про байты написал.
ps а я там у тебя в репе вопрос спросил

t3xHuK
21.12.2007, 15:21
спс) еще утром все поправил, пошел сдавать)

ЗЫ юзнул ТДебаг, раньше в паскале програмил (1 курс када был)) нашел все без порблем... теперь изучаю инфу по олли )))

***Dr.Freez***
21.12.2007, 15:50
2 tclover, ды я знаю как перевести в верхний и в нижний регистра, я хз как теперь все три строки вывести =)

Shawn1x
21.12.2007, 18:36
Задание
используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
Заранее спасибо

Ded MustD!e
21.12.2007, 22:51
Пожалуйста помогите написать хотя бы одну программу на языке Pascal, завтра по этим программам сдавать зачет. Мне сейчас нужно срочно уезжать и у меня физически нет возможности(((( Заранее спасибо тем, кто поможет написать хоть какую-то часть кода!!

1. Пакет операций над матрицами

Требуется написать пакет функций для работы с матрицами размерности 4х4 :

Транспонирование: матрица B получается перестановкой строк и столбцов в исходной матрице A, т.е. для квадратной матрицы bij = aji.

Умножение: произведением матрицы A размерности nхm на матрицу B размерности mхp называется матрица C, каждый элемент cij которой равен сумме
произведений элементов i–й строки матрицы A на соответствующие элементы j–го столбца матрицы B, т.е. cij = ai1b1j + … + aimbmj.

Логические блоки(что нужно сделать):

Генерация 2 исходных матриц (ручная и random).
Транспонирование обеих матриц.
Умножение 2 матриц.
Вывод (любой) матрицы размерности 4х4.

Как и что будет оцениваться преподом:

Содержательная часть:

+5 – операция транспонирование;
+10 – операция умножение.

Интерфейсная часть:

+5 – понятный интерфейс со строками приглашения и пояснениями результатов;
+5 – наличие меню и циклического алгоритма работы программы.

Пояснительная часть:

+2,5 – встроенная система помощи (вывод справочной информации по операциям по специальной команде);
+2,5 – отчёт о проведённом тестировании подробное описание входных и соответствующих им выходных данных, ограничений программы по диапазонам и проч.).

2. Журнал

Требуется создать "Журнал исследователя" для изучения уровня доходов для некоторой группы населения (не более 100 человек).

Логические блоки (базовый пакет):

Добавление данных о возрасте, городе проживания и среднем месячном доходе 1 человека
(с точностью до целых – для числовых данных).

Поиск диапазона введённых значений (для произвольного набора целочисленных
данных).

Поиск среднего значения (для произвольного набора целочисленных данных).

Вывод аналитических данных (диапазона значений и среднего для всех данных о возрасте и всех данных об уровне доходов).

Логические блоки (дополнительный пакет):
Вывод аналитических данных (диапазон и среднее) для заданной пользователем возрастной группы (вход: диапазон возраста группы).

Построение соотношения "возраст-доход" для каждого человека и вывод аналитических данных: возрастание / убывание дохода с возрастом.
Анализ и вывод данных по каждому городу: диапазон и среднее, отклонение среднего для города от среднего для всех данных. Возможность добавления новых статистических данных и повтора анализа.

Как и что будет оцениваться преподом:

Содержательная часть:

+5 – базовый пакет операций;
+25 – дополнительный пакет операций.

Интерфейсная часть:

+5 – понятный интерфейс со строками приглашения, циклическим вводом данных до специальной команды пользователя и пояснениями результатов;
+5 – наличие меню и циклического алгоритма работы программы.

Пояснительная часть:

+2,5 – встроенная система помощи (вывод справочной информации о возможностях программы по специальной команде);
+2,5 – отчёт о проведённом тестировании (подробное описание входных и соответствующих им выходных данных, ограничений программы по диапазонам и проч.).

Neovild
21.12.2007, 23:36
Ded MustD!e, я тебе по матрицам напишу

Neovild
22.12.2007, 02:16
Меня запарило такую фигню писать, ИМО это только для 8-9 класса лицея.
Моя шняга работает с квадратными матрицами. Порядок в матрице задается в константах.
Меня просто запарило писать такую гадость :mad:
program MATRIX;
uses crt;
const
MAX=4;
var
a,b,t1,t2,c1,c2:array [1..MAX,1..MAX] of integer;
j,i,k:integer;
key1,key2:char;
begin
while true do begin
clrscr;
for j:=1 to MAX do
for i:=1 to MAX do begin
t1[j,i]:=0; t2[j,i]:=0; c1[j,i]:=0; c2[j,i]:=0;
end;
repeat
clrscr;
writeln('1-console input'); writeln('2-auto'); writeln('3-exit');
key1:=readkey;
until ((key1='1') or (key1='2') or (key1='3'));

if key1='3' then break;
if key1='1' then begin
for j:=1 to MAX do begin
for i:=1 to MAX do begin
write('a[', j ,',' ,i ,']='); read(a[j,i]);
end;
writeln;
end;
for j:=1 to MAX do begin
for i:=1 to MAX do begin
write('b[', j ,',' ,i ,']='); read(b[j,i]);
end;
writeln;
end;
end;

if key1='2' then begin
writeln('Matrix 1');
for j:=1 to MAX do begin
for i:=1 to MAX do begin
a[j,i]:=random(10); write(a[j,i]); write(' ');
end;
writeln;
end;
writeln('Matrix 2');
for j:=1 to MAX do begin
for i:=1 to MAX do begin
b[j,i]:=random(10); write(b[j,i]); write(' ');
end;
writeln;
end;
end;
writeln(' Matrix created, press key'); key2:=readkey;

writeln('T-Matrix 1');
for i:=1 to MAX do begin
j:=1;
while j<=MAX do begin
t1[i,j]:=a[j,i]; inc(j);
end;
end;
for j:=1 to MAX do begin
for i:=1 to MAX do
write(t1[j,i],' ');
writeln;
end;

writeln('T-Matrix 2');
for i:=1 to MAX do begin
j:=1;
while j<=MAX do begin
t2[i,j]:=b[j,i]; inc(j);
end;
end;
for j:=1 to MAX do begin
for i:=1 to MAX do
write(t2[j,i],' ');
writeln;
end;

writeln(' T-Matrix created, press key'); key2:=readkey;

writeln('Matrix 1 * Matrix 2');
for i:=1 to MAX do
for j:=1 to MAX do
for k:=1 to MAX do
c1[i,j]:=c1[i,j]+a[i,k]*b[k,j];
for j:=1 to MAX do begin
for i:=1 to MAX do
write(c1[j,i],' ');
writeln;
end;
writeln('Matrix 2 * Matrix 1');
for i:=1 to MAX do
for j:=1 to MAX do
for k:=1 to MAX do
c2[i,j]:=c2[i,j]+b[i,k]*a[k,j];
for j:=1 to MAX do begin
for i:=1 to MAX do
write(c2[j,i],' ');
writeln;
end;
writeln(' Increase Matrix created, press key to clear screen'); key2:=readkey;
end;
end.

Nea7
23.12.2007, 20:25
Определить класс "дата" c компонентными данными: число, месяц, год. Перегрузить операциия: >>,<<
(вывод в формате "чч/мм/гггг"),
>= (проверка на более позднюю дату или на их равенство), += (прибавить n дней).


#include <iostream>
#include <iomanip>
using namespace std;

class v_date
{
int number;
int month;
int year;
public:
v_date (int , int, int );
int put_1();
int put_2();
int put_3();
void get_1(int );
void get_2(int );
void get_3(int );

};
v_date::v_date(int a=0, int b=0, int c=0)
{
if (a<31)
number=a;
if (b<13)
month=b;
if (c<2014)
year=c;
}

int v_date::put_1()
{
return number;
}
int v_date::put_2()
{
return month;
}
int v_date::put_3()
{
return year;
}
void v_date::get_1(int a)
{
if (a<31)
number=a;
else
number=0;
}
void v_date::get_2(int b)
{
if (b<13)
month=b;
else
month=0;
}
void v_date::get_3(int c)
{
if (c<2014)
year=c;
else
year=0;
}

ostream& operator << (ostream& out, v_date p)
{
out<<setw(2)<<p.put_1()<<"/"<<setw(2)<<p.put_2()<<"/"<<setw(4)<<p.put_3()<<endl;
return out;
}
istream& operator >> (istream& in, v_date& p)
{
int a;
cout<<"\nEnter number ";
in>>a;
p.get_1(a);
cout<<"\nEnter month ";
in>>a;
p.get_2(a);
cout<<"\nEnter year ";
in>>a;
p.get_3(a);
return in;
}
int operator >= (v_date p, v_date pp)
{ int kz;
int np=365*p.put_3()+30*p.put_2()+p.put_1();
int npp=365*pp.put_3()+30*pp.put_2()+pp.put_1();
return kz=np<npp ? 0: 1; //вычисляем большую дату

}

void main()
{
v_date d1, d2;
cout<<"\nEnter d1\n";
cin>>d1;
cout<<"\nd1="<<d1;
cout<<"\nEnter d2\n";
cin>>d2;
cout<<"\nd2="<<d2;
if (d1>=d2)
cout<<"\nbig number "<<d1;
else
cout<<"\nbig number "<<d2;

}
вот программка не хватает оператора +=, не могу понять как сделать... что-то вроде v_date operator += (v_date p, v_date pp)

{ int zz; zz=p.put_1()+pp.put_1(); return zz;}может кто поможет /

//решил

Furious
25.12.2007, 19:43
Уважаемые Форумчане, помогите пожалуйста с выполнением лабораторной работы на языке С. Дело в том, что лабораторную работу нужно сдать уже в четверг, до него осталось 2 дня, а помимо программирования нужно до четверга сдать ещё 3 зачёта, которые придётся учить, следовательно некого просить о помощи...
Задание лабораторной такое:
Дан файл (333.dat) в котором находятся две квадратные матрицы. Файл выглядит примерно таким образом:
5 4
х х х х х
х х х х х
х х х х х
х х х х х
х х х х х
у у у у
у у у у
у у у у
у у у у где 5 - определитель размерности первой матрицы, 4 - определитель размерности второй матрицы, х - любое число в первой матрице, у - любое число во второй матрице.
Итак нам нужно:
1) проверить наличие файла
2) считать оба массива из файла, предварительно заказав для них память
a = (int **)malloc(n*sizeof(int *));
n - наше первое число 5
for(i=0; i<n; i++)
a[i] = (int *)malloc(n*sizeof(int));
ну в подобном духе...
3) Из первых двух матриц составить третью матрицу, в которой левый верхний угол состоит из элементов той матрицы, след которой больше, а правый нижний - из элементов второй матрицы. Остальные элементы матрицы равны 0.
4) Вывести результат на экран.

Очень надеюсь, что Вы мне поможете. Напомню, что язык, на котором нужно составить программу - "С". (желательно под Visual Studio 2005).

Shawn1x
25.12.2007, 20:31
Задание
используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
Заранее спасибо

Release
26.12.2007, 02:50
На основе элементов вещественного массива А(n) и значения логической переменной Т вычислить количество положительных элементов массива А, если переменная Т имеет значение «истина» и произведение отрицательных элементов массива А в противном случае.

Реализация Паскаль.

Пожалуйстааааа!!!!
Email: Ermakgol@mail.ru или здесь...плиз

krypt3r
26.12.2007, 17:02
Release, навскидку

const
n = 5;

var
a : array [1..n] of real;
p : real;
i : integer;
t : boolean;

begin
t := false;
writeln ('ввод данных в массив');
for i := 1 to n do begin
write ('Введите ', i, '-й элемент массива: ');
readln (a [i]);
end;
p := 1;
if t then
for i := 1 to n do
if a [i] > 0 then
p := p * a [i];
if not t then
for i := 1 to n do
if a [i] < 0 then
p := p * a [i];
writeln ('Произведение: ', p : 0 : 3);
end.

Joker-jar
26.12.2007, 17:15
вычислить количество положительных элементов массива А, если переменная Т имеет значение «истина»
То есть тут:
if t then
for i := 1 to n do
if a [i] > 0 then
p := p * a [i];
надо делать типо:
if t then
for i := 1 to n do
if a [i] > 0 then
inc(count);
где count целочисленная переменная, инициализированная нулем перед циклом ;)

Neovild
26.12.2007, 17:45
Release, лови.
program ArrayNoobas;
uses crt;
const
Max=20;
var
a:array [1..MAX] of real;
i,kol:integer;
pro:real;
t:boolean;
procedure zapoln;
begin
clrscr;
for i:=1 to MAX do
a[i]:=-5+random(10);
end;

procedure create_t;
var
key:char;
begin
repeat
key:=readkey;
until (key='0')or(key='1') ;
if key='0' then t:=false
else t:=true;
end;

begin
zapoln;
create_t;
if t=true then begin
for i:=1 to MAX do
if a[i]>0 then inc(kol);
writeln(kol);
end
else begin
i:=1;
while i<=MAX do begin
inc(i);
if a[i-1]<0 then begin
pro:=a[i-1]; break; end;
end;
while i<=MAX do begin
if a[i]<0 then
pro:=pro*a[i];
inc(i);
end;
writeln(pro);
end;
readln;
end.

krypt3r
27.12.2007, 07:33
Млин, сорри, пост невнимательно прочел ((
где count целочисленная переменная, инициализированная нулем перед циклом
Этого недостаточно, ее еще нужно описать в разделе var :)

Neovild, одно замечание - массив будет заполняться одним числом, ибо отсутствует Randomize в начале процедуры
А вот этот код для чего?

while i<=MAX do begin
inc(i);
if a[i-1]<0 then begin
pro:=a[i-1]; break; end;
end;

Поиск в массиве первого отрицательного числа? Имхо, это лишнее немного, достаточно проинициализировать переменную pro единицей перед циклом вычисления произведения (чуть не написал "производной" :) ). Хотя ваш вариант программы тоже приемлем ;)

zarkon
27.12.2007, 21:50
Доброе время суток.
Требуется для курсового написать Генератор случайных чисел с экспоненциальным законом распределения. Формула: p(x) = l * exp(-* x).
вот что получилось у меня но проблема в том что ответ всегда равен нолю. в случае если поставить границы для рандома у него всегда одно число ноль. и ответ в результате тоже.

void main (){
double p;
srand((unsigned long)time(NULL));
double x=rand();
double l=rand();
p=l*exp(-l*x);
printf ("%d ,%d ,%d",p,x,l);
getch ();}

Заранее благодарен.

Heavy Metal
28.12.2007, 01:18
Хелп. На асме (Tasm) надо накодить прогу, вычисляющую все простые числа в диапазоне от 2 до вводимого с клавы числа.

upd:
Кое как разобрался, написал ) выкладываю на всякий случай

.model tiny
.386
.Stack 70h
.code
start:

mov ax,@data
mov ds,ax

push cs
pop ds
mov ah,09h ; приглашение к вводу
mov dx,offset str1
int 21h

mov di,0 ; введенные символы
mov si,0 ; номер позиции
mov bp,10 ; основание системы
r1: mov ah,08h
int 21h ;читаем символ
cmp al,'0' ;если это служебный символ -> r3
jb r3
cmp al,'9' ;если это не цифра -> r1
ja r1
mov bl,al ;сохраним символ в bl
mov ax,di
mul bp ;умножаем на 10

mov dl,bl
sub dl,'0' ;преобразуем символ в цифру
mov dh,0 ;DX - цифра
add dx,ax
jc r1 ;Если перенос -> переполнение
inc si
mov di,dx
mov dl,bl
mov ah,02h
int 21h
jmp r1
r3: cmp si,0
je r1
cmp al,13
je enter2 ;нажали ввод
cmp al,8
jne r1

enter2:
mov ah,09h ;новая строка
mov dx,offset newline
int 21h

mov mem,di ;дублируем эталон
mov nen,di

mov ax,mem ; эталон в AX для работы

mov cnt,1 ; счетчик в еденицу
mov bl,1
mul bl ; переводим AX в DX:SI

main_cycle: ;главный цикл


add cnt,1 ; проверяем следующее число
mov bx,mem
mov ax,cnt
cmp ax,bx ; проверены все числа...
jg qall



mov bx,1 ; переносим AX в DX:AX
mul bx

mov cx,2 ; делим с тройки
internal:
push ax
push dx ; сохраняем текущее проверяемое число
;mov bx,cx
div cx ; делим DX:AX на CX
cmp dx,0 ; если остатка нету
je main_cycle; то число не простое
pop dx
pop ax


add cx,1
cmp ax,cx
jle prime
jmp internal

prime:
mov ah,09h ;выводим простое число
mov dx,offset space
int 21h
mov ax,cnt
call print_prime
jmp main_cycle

qall:
mov ax,4c00h;Выход
int 21h

print_prime proc ;вывод числа
push -1
l: xor dx,dx;чистим dx
div bp ;делим
push dx ;сохраним цифру
cmp ax,0 ;остался 0?
jne l ;если нет, продолжим
mov ah,2h
l2: pop dx ;восстановим цифру
cmp dx,-1 ;дошли до конца -> выход
je qex
add dl,'0' ;преобразуем число в цифру
int 21h ;выведем цифру на экран
jmp l2 ;и продолжим
qex:
ret
endp print_prime

str1 db '.-==[Prime Numbers]==-.',10,13
db '> $'
space db ' $'
newline db 10,13,'$'
mem dw 0
nen dw 0
cnt dw 0


end start

Loker
28.12.2007, 17:33
Может кому поможет.
Курсовая работа: Нахождение интеграла 5 методами с высокой точностью..

function funk(var x:real):real;
begin
funk:=Ваша функция
end;

procedure left(var a,b,e:real);
var
k,s1,s2,p,l,rez:real;
i,g,n:integer;

begin
n:=30;
g:=0;
repeat
s2:=s1;
p:=(b-a)/n;
l:=0;
g:=g+1;
for i:=0 to n-1 do
begin
k:=a+i*p;
l:=l+funk(k);
end;
s1:=l*p;
n:=n*2;
until abs(s1-s2)<=e;
rez:=s1;
writeln('rezult ',rez:6:5,' kol-vo itaracij ',g);
readln;
end;

procedure right(var a,b,e:real);
var
t,s1,s2,h,s,rez:real;
n,i,g:integer;
begin
n:=30;
g:=0;
repeat
s2:=s1;
h:=(b-a)/n;
s:=0;
g:=g+1;
for i:=1 to n do
begin
t:=a+i*h;
s:=s+funk(t);
end;
s1:=s*h;
n:=n*2;
until abs(s1-s2)<=e;
rez:=s1;
writeln('rezult ',rez:6:5,' kol-vo itaracij ',g);
readln;
end;

procedure center (var a,b,e:real);
var
t,s1,s2,h,s,rez:real;
n,i,g:integer;
begin
n:=30;
g:=0;
repeat
s2:=s1;
h:=(b-a)/n;
s:=0;
g:=g+1;
for i:=0 to n-1 do
begin
t:=a+h/2+h*i;
s:=s+funk(t);
end;
s1:=s*h;
n:=n*2;
until abs(s1-s2)<=e;
rez:=s1;
writeln('rezult ',rez:6:5,' kol-vo itaracij ',g);
readln;
end;

procedure trap(var a,b,e:real);
var
t,s1,s2,h,s,rez: real;
i,n,g:integer;
begin
n:=30;
g:=0;
repeat
s2:=s1;
h:=(b-a)/n;
s:=(funk(a)-funk(b))/2;
g:=g+1;
for i:=1 to n-1 do
begin
t:=a+i*h;
s:=s+funk(t);
end;
s1:=h*s;
n:=n*2;
until abs(s1-s2)<=e;
rez:=s1;
writeln('rezult ',rez:6:5,' kol-vo itaracij ',g);
readln;
end;

procedure simps(var a,b,e:real);
var
s,r,s2,s1,h:real;
m,n,ch,g:integer;
begin
n:=30;
ch:=1;
g:=0;
repeat
s2:=s1;
h:=(b-a)/(n-1);
s:=funk(a)+funk(b);
g:=g+1;
for m:=1 to n-2 do
begin
r:=a+h*m;
s:=s+ch*funk(r);
if (ch=4) then ch:=2 else ch:=4;
end;
s1:=s*h/3;
until abs(s2-s1)/s1<e;
writeln('rezult ', s1 :6 :5,' kol-vo iteracij ',g);
readln;
end;
var
a,b,e:real;
vibor:integer;
begin
repeat
writeln('Vvedite metod naxogdeni9 Interala');
writeln('1-Pravilo levix pr9moygolnikov');
writeln('2-Pravilo pravix pr9moygolnikov');
writeln('3-Pravilo srednix pr9moygolnikov');
writeln('4-Naxogdenie integrala metodom simpsona');
writeln('5-Naxogdenie integrala s pomowu pravila Tropesii');
writeln('6-Informasi9 o programme');
readln(vibor);
writeln('');
if vibor=6 then
begin
clrscr;
writeln('-===========================================------');
writeln('Ваше имя сюда вобьете');
writeln('-===========================================------');
writeln('');
end;
until vibor<=5;
clrscr;
writeln('-===========================================------');
write('Vvedite a - ');readln(a);
writeln('');
writeln('-===========================================------');
write('VVedite b - ');readln(b);
writeln('');
writeln('-===========================================------');
write('Vved EPS - ');readln(e);
writeln('');
writeln('-===========================================------');
if vibor=1 then
begin
writeln('Vi vibrali 1. Metod LeVix pr9moygolnikov'); writeln;
left(a,b,e);
end;
if vibor=2 then
begin
writeln('Vi vibrali 2. Metod PraVix pr9moygolnikov'); writeln;
right(a,b,e);
end;
if vibor=3 then
begin
writeln('Vi vibrali 3. Metod Srednix pr9moygolnikov'); writeln;
center(a,b,e);
end;
if vibor=4 then
begin
writeln('Vi vibrali 4.Metod TraPesii'); writeln;
trap(a,b,e);
end;
if vibor=5 then
begin
writeln('Vi vibrali 5. Metod Simpsona '); writeln;
simps(a,b,e);
end;
readln
end.
Писал на ABC паскале поетому немного кривовато получилось. Но у меня приняли

Georg Jung
02.01.2008, 04:06
Каким образом с помощью MFC реализовать следующее:
1. Приложение должно при нажатии клавиш к примеру 1,2,3, ........ выводить графические фигуры (Проблема в том что какое сообщение вставлять в карту? Это WM_CHAR ? и как потом реализацию отклика на сообщение связать с WM_PAINT ....... так чтобы появлялась нужная фигура)
2. Приложение под управлением таймера выводит на экран графические фигуры с заданным интервалом (Как в void CMyMainWnd::OnTimer(UINT nIDEvent) это можно осуществить ? )
3. Нужно чтобы с помощью клавиш "вверх - вниз" изменялась частота таймера.

Шаблон данных приложений примерно такого вида:

#include <afxwin.h>

class CMyMainWnd:
public CFrameWnd
{public:

CMyMainWnd()

{
Create(NULL,"$ - Djigser");
SetTimer(1,1000,NULL);
}
afx_msg void OnTimer(UINT);
DECLARE_MESSAGE_MAP()


~CMyMainWnd()

{
KillTimer(1);

}

};
BEGIN_MESSAGE_MAP(CMyMainWnd,CFrameWnd)

ON_WM_TIMER()
END_MESSAGE_MAP()

class CMyApp :
public CWinApp
{public:

CMyApp(){};

virtual BOOL InitInstance()
{
m_pMainWnd=new CMyMainWnd();
m_pMainWnd->ShowWindow(SW_SHOW);
return TRUE;
}
};
CMyApp theApp;


void CMyMainWnd::OnTimer(UINT nIDEvent)
{
if(nIDEvent==1)
{
CClientDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,255));
CBrush* def_brush = dc.SelectObject(&brush);
dc.Ellipse(5,5,50,50);
dc.SelectObject(def_brush);
brush.DeleteObject();
}
}

Был бы признателен за оказанную помощь.

Shawn1x
02.01.2008, 19:58
Задание
используя алгоритмы и контейнеры Stl:
создай список из 20 случаных элементов, со значениями от 1 до 19.
отсортируй список так что бы сначала шли четные элементы
Заранее спасибо

Forcer
03.01.2008, 16:43
Shawn1x

#include <vector>
#include <iostream>
#include <time.h>
#include <algorithm>
using namespace std;

bool pred( int value )
{
return !(value % 2) ;
}

void print( int value )
{
cout << value << '\t';
}

void set_and_print( int& value)
{
cout << ( value = rand() % 20 ) << '\t';
}

void main()
{
const int size = 20;

vector<int> vec(size);
srand((unsigned)time(NULL));

for_each(vec.begin(), vec.end(), set_and_print);

cout << endl;

partition(vec.begin(), vec.end(), pred);

for_each(vec.begin(), vec.end(), print);

cout << endl;
}

Life-inventor
08.01.2008, 23:06
Народ, помогите пожалуйста.

Задача Ферма. Найти квадрат, который в сумме со всеми его собственными делителями дает куб.

С рекурсивным алгоритмом . На С++.

Заранее огромное спасибо.

kotopusya
10.01.2008, 00:48
очень надо решить задачу до пятницы...на с++...никто почему-то не может...неужели она такая нерешаемая?посмотрите пожалуйста...может кто хоть часть кода сможет написать?
Разместить на шахматной доске максимальное количество слонов и ладей так, чтобы они не находились друг у друга "под боем".

ZaCo
10.01.2008, 00:56
http://forum.antichat.ru/showpost.php?p=517321&postcount=16

mari00
10.01.2008, 11:06
Вот дали задачку, надо написать под Delphi в консоль апликатион, что-то не получается написать корректные функции
Заданиезаданые n точек на плоскости записать в массив записей tpoint
Разработать подпрограмму поределамия коэф прямой проходишей через две точки
для описания прямой использовать запись с полями k,b:real
разработать подпрограмму формирования записей для всех возможных прямых проходящих между двумя точками
разработать подпрограмму определения прямой с максимальным К и соответствующей ей точек(определить их номера)
то что накропал
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;
type tpoint=record
x,y:real; end;
primai=record
k,b:real; end;
tmas=array[1..20] of tpoint ;
mas=array[1..20] of real;
//vvod точек
procedure Vvod( var A:tpoint;n:Integer);
var i:integer;
begin
Writeln('vvedire kolvo tochek');
readln(n);
for i:=1 to n do
begin
Writeln('koordinatu x');
readln(A.x);
Writeln('koordinatu y');
readln(A.y);
end;
end;
//функция определения коэфициента.
Function Oprkoef(const tpoint1,tpoint2:tpoint; n:integer ):real;
begin
result:=(tpoint1.y--tpoint2.y)/(tpoint1.x--tpoint2.x);
end;
Var A:tpoint;
n,i,j:integer;
Begin
procedure Vvod(A,n);
readln;
end.
Среда ругается на вывоз процедуры, подскажите в чем оплошность?

krypt3r
10.01.2008, 11:37
А к чему создавать тип TPoint, когда он в делфи уже есть? Только, вроде бы, там x и y типа integer, если память не изменяет. Лучше объявите тип TMyPoint.
В процедуру Vvod передавайте не var A: TPoint, а лучше var A: array of TMyPoint.
Что означает код
result:=(tpoint1.y--tpoint2.y)/(tpoint1.x--tpoint2.x);?
Что за операция -- ? И вообще для чего у вас функция Oprkoef, если она нигде не вызывается?
Begin
procedure Vvod(A,n);
readln;
end.
хе, ключевое слово procedure при вызове подпрограммы из тела главной программы не нужно совершенно.
ЗЫ. На будущее оформляйте плиз код в тэги [коде][/коде], а не в [квоте][/квоте], читать код сложно

krypt3r
10.01.2008, 11:49
Часть кода может быть таким:

program Project2;
{$APPTYPE CONSOLE}
type
TMyPoint = record
x, y : real;
end;
TLine = record
k, b : real;
end;
TMas = array [1..20] of TMyPoint;
////vvod точек
procedure Vvod (var A : TMas; n : Integer);
var
i : integer;
begin
for i := 1 to n do begin
Write ('koordinatu x: ');
readln (A[i].x);
Write ('koordinatu y: ');
readln (A[i].y);
end;
end;
........
var
A : TMas;
n, i, j : integer;
begin
Write ('vvedire kolvo tochek: ');
readln(n);
Vvod (A,n);
readln;
end.

DSSNB
13.01.2008, 16:36
Вообщем нада на завтра ответить на 1 из вопросов, облазил гугл, яндэкс, всё безтолку. Помогите пжлст=)

Вот собственно и сами вопросы:

1. Ассемблер МП18086 фирмы Intel. Арифметические команды. Команды инкрементирования и декрементирования операндов.

2. Минимизация логических функций с использованием координатных диаграмм Вейча. Свойства и шаги минимизации. Создание выражения и схемы для базиса <Да-Нет>.


Заранее огромное-огромное спасибо!

Life-inventor
14.01.2008, 00:07
Народ, помогите пожалуйста.

Задача Ферма. Найти квадрат, который в сумме со всеми его собственными делителями дает куб.

С рекурсивным алгоритмом . На С++.

Заранее огромное спасибо.
Люди, помогите плиз, ооочень надо....

Ky3bMu4
14.01.2008, 00:37
#include <stdio.h>
int i;

int get(void){
int kv,kub,summ;
kv=i*i;
kub=i*i*i;
summ=kv;
for(int h=1;h<=(i*i);h++){
if(kv%h==0) summ+=h;
}
if(summ==kub) return 0;
else get();
return 0;
}

int main(void){
i=1;
get();
printf("%d",&i);
return 0;
}

На тебе! Написано за 5мин.

SHLAK
15.01.2008, 21:12
Вот буду благодарен, уже с этой последний лабой замучался, а завтра уже сдавать

C++

1. Вычислите сумму элементов с нечетными номерами.
2. Преобразуйте массив так, чтобы элементы массива поменялись местами (первый — с последним, второй — с предпоследним и т.д.).
3. Вычислите сумму элементов, находящихся между первым и последним отрицательными элементами.
4. Из данного массива и другого массива того же типа, но другой размерности сформируйте общий массив и вычислите сумму положительных элементов, стоящих на нечетных местах.

Ky3bMu4
15.01.2008, 22:15
1. Вычислите сумму элементов с нечетными номерами.


int summ=0,massv[size];//чё там у тя
for(int x=0;x<=size;x++){
if(x%2==1) summ+=massv[x];
}


2. Преобразуйте массив так, чтобы элементы массива поменялись местами (первый — с последним, второй — с предпоследним и т.д.).


int massv[size],nsize;
bool f=size%2;
if(!f) nsize=(size-1)/2;
else nsize=size/2;
for(int x=0;x<=nsize;x++){
massv[x]=massv[size-x];
}

Forcer
15.01.2008, 22:53
Ky3bMu4
в циклах везде используешь <= - наверное нужно просто <.
К тому же massv[x]=massv[size-x]; не меняет местами элементы.

reversys
15.01.2008, 23:07
2 Ky3bMu4
Forcer прав, поправь там.

2 SHLAK

3. Вычислите сумму элементов, находящихся между первым и последним отрицательными элементами.


int first=-1,last=-1,mass[30],sum=0;
for(int i=0;i<30;i++)
{
if(mass[i]<0)
{
if(first==-1)
{
first=i;
}
last=i;
}
}
for(i=first+1;i<last;i++)
{
sum+=mass[i];
}

Forcer
16.01.2008, 00:15
4. Из данного массива и другого массива того же типа, но другой размерности сформируйте общий массив и вычислите сумму положительных элементов, стоящих на нечетных местах.


const int size1 = 10, size2 = 5;
int mas1[size1] = {1,2,3,-4,5,6,7,8,9,-10},
mas2[size2] = {11,12,13,-14,15},
newsize = size1 + size2,
sum = 0;

int* mas3 = new int[ newsize ];

for( int i = 0; i < size1; ++i ) {
mas3[i] = mas1[i];
if( i % 2 && mas3[i] > 0 )
sum += mas3[i];
}

for( int i = 0; i < size2; ++i ) {
mas3[size1+i] = mas2[i];
if( (size1+i) % 2 && mas3[size1+i] > 0 )
sum += mas3[size1+i];
}

for(int i=0; i < newsize; ++i)
cout << mas3[i] << ' ';

cout << "\nSum = " << sum << endl;

delete [] mas3;

androyd
16.01.2008, 19:57
Ох, свалилось на меня тут тоже.. =\

Нужно написать задачку на С++

1. Напишите программу, которая по заданному натуральному числу определяет его первую и последнюю цифры. Определение и вывод цифр оформите в виде функции.
2. Напишите программу с использованием функции Perim. В эту функцию из программы передаются координаты вершин треугольника А(х1, у1), В(х2, у2), С(хЗ, уЗ), а она возвращает периметр треугольника. Если такой треугольник не существует, то выдается соответствующее сообщение.

Очень хотелосьбы с подключенной библитекой (полностью прогу :rolleyes: ), и каментами к проге... Чтоб разобраться самому хоть..
Времени на выполнение дали: 1-2 дня =\

Dark-Fox
17.01.2008, 06:30
Здраствуйте ув. Кодеры! Очень Нужна ваша помощь у меня сессия если не сдам лабы то будет плохо =\

Дайте код 1 из двух нижеприведенных прог! 1 на выбор!

1 Написать функцию, которая в зависимости от заданного обозначения проводит сортирование массива по возрастанию или убыванию.

2. Написать функцию, которая росчитывает проценты от вклада в зависимости от вида и розмера вклада.

Очень жду! Временя максимум 3 дня, с меня много +++ =))) Прога на С++

Спасибо.

dinar_007
17.01.2008, 19:46
Здраствуйте ув. Кодеры! Очень Нужна ваша помощь у меня сессия если не сдам лабы то будет плохо =\

Дайте код 1 из двух нижеприведенных прог! 1 на выбор!

1 Написать функцию, которая в зависимости от заданного обозначения проводит сортирование массива по возрастанию или убыванию.

2. Написать функцию, которая росчитывает проценты от вклада в зависимости от вида и розмера вклада.

Очень жду! Временя максимум 3 дня, с меня много +++ =))) Прога на С++

Задание впринципе лёгкое...

#include&ltstdio.h>
#include&ltconio.h>
#define B 6
main()
{
float array[] = {5.0, 2.0, 3.0, 1.0, 6.0, 4.0};
float *pmin[B], *pmax[B], *e;
int i, j; clrscr();
for(i = 0; i < B; i++)
pmin[i] = pmax[i] = &array[i];
printf("pmin: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", *pmin[i]);
printf("\npmax: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", *pmax[i]);
printf("\narray: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", array[i]);
printf("\n\n");
for(i = 0; i < B; i++)
for(j = i+1; j < B; j++)
{ if(*pmin[i] < *pmin[j])
{
e = pmin[i]; pmin[i] = pmin[j];
pmin[j] = e;
}
if(*pmax[i] > *pmax[j])
{
e = pmax[i]; pmax[i] = pmax[j];
pmax[j] = e;
}
}
printf("По убыванию: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", *pmin[i]);
printf("\nПо возрастанию: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", *pmax[i]);
printf("\nИсходный массив: \n");
for(i = 0; i < B; i++)
printf("\t%5.3f", array[i]);
getch();
}


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

Спасибо.

Пожалуйста...

SHLAK
18.01.2008, 14:54
можете помочь, ща на экзе.
1,2,10,0,10, 0, 1, 2
нужно написать массив так что бы определял цифры между 0 и 10

z01b
18.01.2008, 16:01
можете помочь, ща на экзе.
1,2,10,0,10, 0, 1, 2
нужно написать массив так что бы определял цифры между 0 и 10
Не понял задачу, по конкретнее плз

SHLAK
18.01.2008, 16:11
препод задал, вот как есть. что бы опред цифры между 0 и 10.
и еще задал
main (){
int x [] ={1,2,
3,4,5}
что бы каждое число возвелось в квадрат

dinar_007
18.01.2008, 16:20
препод задал, вот как есть. что бы опред цифры между 0 и 10.
и еще задал
main (){
int x [] ={1,2,
3,4,5}
что бы каждое число возвелось в квадрат
Задача некорректна... Давай полный текст билета...

z01b
18.01.2008, 16:21
препод задал, вот как есть. что бы опред цифры между 0 и 10.
и еще задал
main (){
int x [] ={1,2,
3,4,5}
что бы каждое число возвелось в квадрат

main()
{
int i;
int x[]={1,2,3,4,5};
printf("Chisla mezhdu 0..10: ");
for(i=0;i<5;i++){
if (x[i]>0&&x[i]<10) printf("%d ",x[i]);

}
return 0;
}

Может чтото вроде такого? хотя не понял задание до конца

SHLAK
18.01.2008, 16:21
с++

z01b
18.01.2008, 16:26
с++
main()
{
int i;
int x[]={11,13,9,6,5};
cout << "Chisla mezhdu 0..10: ";
for(i=0;i<5;i++){
if (x[i]>0&&x[i]<10) cout << x[i];

}

return 0;
}

Dark-Fox
20.01.2008, 06:26
Помогите пожалуйста, как оставить в слове только первые вхождения каждой буквы?

на с++

z01b
20.01.2008, 11:57
Помогите пожалуйста, как оставить в слове только первые вхождения каждой буквы?

на с++
Не понял задачу, дай пример.

Dark-Fox
20.01.2008, 12:59
ну слово АНТИЧАТ шоп осталось АНТИЧ

z01b
20.01.2008, 14:20
ну слово АНТИЧАТ шоп осталось АНТИЧ
#include <string.h>
strncpy()

Dark-Fox
20.01.2008, 16:33
непонял, надо тока 1 вхождения каждого символа!

z01b
20.01.2008, 17:42
непонял, надо тока 1 вхождения каждого символа!
#include <string.h>
int main()
{
char str[]="antichat";
char x[20];
memset(x, 0, sizeof(x));
strncpy(x,str,5);
printf("%s",x);
return 0;
}
ЗЫ Суть вопроса до конца не понял...

Delimiter
20.01.2008, 20:03
Dark-Fox используйте ...... на здоровье!

void s_int_trim(char *str)
{
for(int i=0;*(str+i)!=0;i++)
for(int j=i+1;*(str+j)!=0;j++)
if(*(str+i)==*(str+j)
{
strcpy(str+j,str+j+1);
j--;
}
}

но на будущее обьясняйте задание более подробно.

SuperNova
21.01.2008, 22:09
Напишите кто нибудь плиз. или обьясните как это сделать.
Вывести на экран куб (только ребра) с возможностью вращения вокруг вертикальной оси.
Очень надо
Лучше на Делфи или паскале

Delimiter
22.01.2008, 05:59
кубик в фас - это прямоугольник с 2-мя линиями посредине мечущихся по прямоугольнику
8)))))))).... думаю ты не это имеешь ввиду.

А если имеешь ввиду изометрию , то рисуй в трехмерном мире за экраном а затем вычисляй точки пересечения лучей с экраном на линии ТОЧКА_КУБА<->ГЛАЗ получая координаты точек уже в 2-х мерном для твоих линий

life_is_shit
23.01.2008, 03:41
Народ, кому невпадлу помогите с лабой, реально не успеваю (нужно ищо 3 штуки успеть сделать). С меня +.

Задание:
Создать динамическую библиотеку (DLL), в которой описать функцию преобразования файла из формата ASCII в UNICODE. Написать программу, которая вызывает функцию преобразования из DLL.

должно быть написано в visual studio, и обязательно с исходниками. Язык С++

* сессия+5*(хвост) = армия

Antiakvt
23.01.2008, 03:54
Хакеру необходимо составить программу "KeyGenerator", позволяющую подобрать пароли для запуска программного обеспечения "Программа 1". Известо, что пароль (комбинация нулей и единиц) должен состоять из 2*N разрядов. Верным является такой, у которого сумма первых V цифр равна сумме V последних цифр. Помогите хакеру решить эту несложную задачу.

До утра ппц горит... Язык или C++ или Pascal или dcc.
При желании можно и асьму..

Delimiter
23.01.2008, 11:39
void M_gen_key(char *str,int counter,int Nx2,int V)
{
int i,l1,l2;
if(counter<Nx2)
{
*(str+counter)='0';
M_gen_key(str,counter+1,Nx2,V);
*(str+counter)='1';
M_gen_key(str,counter+1,Nx2,V);
}
else
{ //тупость оправдываемая увеличением суммарного кол-ва тактов
// на анализ "умного" перебора хвоста
for(i=0,l1=l2=0;i<V;i++)
{
l1+=*(str+i)-0x30;
l2+=*(str+counter-i-1)-0x30;
}
if(l1==l2)
{
*(str+counter)=0;
// vivod kuda hochesh
// ...........
}
}
}
void CAwsfsfDlg::OnMyGenerate() // обработчик нажатия кнопки
{
char *str;
int N=4;
int Nx2=N*2;
int V=Nx2/2; //тут подкоректируешь если не всегда так
str=new char[Nx2];
M_gen_key(str,0,Nx2,V);
delete[] str;

}
Пользуйся

Tyc00n
25.01.2008, 18:10
1. Присвоить целой переменной h третью от конца цифру в записи положительного целого числа k.
2. Числа Фибоначчи (fn) определяются формулами
f0=f1=1; fn=fn-1+fn-2 при n=2, 3, . . .
Вычислить S – сумму всех чисел Фибоначчи, которые не превосходят 1000.
3. Из-за нелётной погоды необходимо посадить находящиеся в воздухе (над аэропортом) самолёты разных классов на несколько запасных аэродромов. Каждый из запасных аэродромов в состоянии принять k[i] самолётов класса не выше p[i], где i – номер аэродрома. Посадить самолеты при условии, что для каждого самолета известно расстояние, которое он может пролететь на имеющемся горючем.
4. Создать компонент – регулятор громкости звука на компьютере.

Кто сделает стукните в асю :) Программы школьные :)

Delimiter
25.01.2008, 23:08
4-я задача :)
неужели такое в школе дают :D чиста драйвер написать или все таки directX ? :D
.... или все таки прилинковать winmm.lib?
....

по 1-й
.... такое даже новичек напишет за 5 сек (насколько я понял условие)

по 2-й
возьмешь

long sum (int a1,int a2)
{
if(a1+a2<1000)
return a2+sum(a2,a1+a2);
else
return a2;
}


...
printf("Sum=%l",2+sum(1,2));


по 3-й мало параметров для решения!

но выглядит как олимпиадная задача выдранная из контекста!
Задача простая агоритм "жадный" на отсортированных массивах(сажаем вначале все самолеты с малым количеством горючего), но вся фишка там что сортировка производится во время ввода данных методом прямой вставки а в другом случае превышение по времени!

D=P=CH= MOD=
28.01.2008, 23:06
Нужна помощь!
Задание такое:
Матрица А из N стpок и N столбцов размещена в одномерном массиве по строкам. Поменять местами К-й и L-й столбцы матрицы (К и L заданы). Результат напечатать по строкам.

Написал прогу:


#include "stdafx.h"
#include <iostream> // for cin/cout
#include <string> // for string

using namespace std;

int main()
{
// enter data
int n;
cout << "Enter N: ";
cin >> n;
cout << "Enter matrix (" << n*n << " numbers):\n";
int a[10000]; // matrix by lines
for (int i=0; i<n*n; ++i)
cin >> a[i];
int k, l;
cout << "Enter K: ";
cin >> k;
cout << "Enter L: ";
cin >> l;

// swap k and l columns
for (int i=0; i<n; ++i)
swap (a[i*n+k-1], a[i*n+l-1]); // swap Matr[i][k] and Matr[i][l]

// output result
cout << "Result:\n";
for (int i=0; i<n; ++i)
{
for (int j=0; j<n; ++j)
cout << a[i*n+j] << ' ';
cout << '\n';
}
getchar();
getchar();

return 0;
}



Но забыл, что нужно не вводить числа в матрицу, а случайно генерировать....

Пример получения случайного числа:
#include <time.h>
#include <iostream>

srand(time(0));// случайные числа зависят от времени
A[i][j]=rand()%10; //Случайное число от 0 до 10

Сделайте, чтобы прога работала с случайной генерацией.
Просто нет сейчас возможности самому эти коды совместить. Заранее спасибо!

D=P=CH= MOD=
28.01.2008, 23:40
код примерно такой:

srand(time(0));
for(int i=0;i<=n-1;i++)
{
*** for(int j=0;j<=n-1;j++)
*** {
*** *** massiv[i][j]=rand()%10;//10 диапозон случайных значений (0-10)
}
}

нужно вставить вместо:

nt a[10000]; // matrix by lines
for (int i=0; i<n*n; ++i)
cin >> a[i];
int k, l;
cout << "Enter K: ";
cin >> k;
cout << "Enter L: ";
cin >> l;

откомпильте плиз и потестите...
если что исправьте.
Спасибо!

D=P=CH= MOD=
28.01.2008, 23:43
noobyara Спасибо!
прозьба не актуальна.

Talisman
29.01.2008, 21:19
лсас, где такую мутню задают?

D=P=CH= MOD=
02.02.2008, 15:34
Небольшая прозьба, просто сам че-то неврублюсь пока никак ..
кроче есть прога, все написано, пашет.. раскрашена цветами.
По заданию прога выводит 2 матрицы: первая исходная, а вторая с заменой местами двух столбцов. Так вот эти столбцы в первой и второй матрице надо выделить разными цветами, чтобы было видно.

вот прога:

#include "stdafx.h"
#include <iostream> // for cin/cout
#include <string> // for string
#include <time.h>
#include <windows.h>

using namespace std;

HANDLE hStdout;
int main()
{
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdout, BACKGROUND_INTENSITY);
int n;
SetConsoleTextAttribute(hStdout, 7);
cout << "Enter N: ";
cin >> n;
while(n<=0)
{
cout << "\nerror N\nEnter N: ";
cin >> n;
}
SetConsoleTextAttribute(hStdout, 3);
cout << "generate...\n";
int a[10000];
srand(time(0));
for (int i=0; i<n*n; ++i)
{
a[i]=rand()%10;
}
int k=0, l;
SetConsoleTextAttribute(hStdout, 4);
cout << "Enter K: ";
cin >> k;
while(k>n&&k<0)
{
cout << "\nerror K\nEnter K: ";
cin >> k;
}
SetConsoleTextAttribute(hStdout, 8);
cout << "Enter L: ";
cin >> l;
while(l>n&&l<0)
{
cout << "\nerror L\nEnter L: ";
cin >> l;
}

for (int i=0; i<n; ++i)
{
for (int j=0; j<+n; ++j)
cout << a[i*n+j] << ' ';
cout << '\n';
}



// swap k and l columns
for (int i=0; i<n; ++i)
swap (a[i*n+k-1], a[i*n+l-1]); // swap Matr[i][k] and Matr[i][l]

// output result
SetConsoleTextAttribute(hStdout, 6);
cout << "Result:\n";
SetConsoleTextAttribute(hStdout, 6);
for (int i=0; i<n; ++i)
{
for (int j=0; j<+n; ++j)
cout << a[i*n+j] << ' ';
cout << '\n';
}
int x;
int i;
if (i==k){SetConsoleTextAttribute(hStdout, 18);}

getchar();
getchar();

return 0;
}

Заранее спасибо!

Forcer
02.02.2008, 16:07
#include "stdafx.h"
#include <iostream> // for cin/cout
#include <string> // for string
#include <time.h>
#include <windows.h>

using namespace std;

HANDLE hStdout;
int main()
{
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdout, BACKGROUND_INTENSITY);
int n;
SetConsoleTextAttribute(hStdout, 7);
cout << "Enter N: ";
cin >> n;
while(n<=0)
{
cout << "\nerror N\nEnter N: ";
cin >> n;
}
SetConsoleTextAttribute(hStdout, 3);
cout << "generate...\n";
int a[10000];
srand(time(0));
for (int i=0; i<n*n; ++i)
{
a[i]=rand()%10;
}
int k=0, l;
SetConsoleTextAttribute(hStdout, 4);
cout << "Enter K: ";
cin >> k;
while(k>n&&k<0)
{
cout << "\nerror K\nEnter K: ";
cin >> k;
}
SetConsoleTextAttribute(hStdout, 8);
cout << "Enter L: ";
cin >> l;
while(l>n&&l<0)
{
cout << "\nerror L\nEnter L: ";
cin >> l;
}

// Добавление здесь
//**************************
for (int i=0; i<n; ++i)
{
for (int j=0; j<n; ++j) {
if( j == k - 1)
SetConsoleTextAttribute (hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
if( j == l - 1 )
SetConsoleTextAttribute (hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout << a[i*n+j] << ' ';
if( j == k - 1 || j == l - 1 )
SetConsoleTextAttribute(hStdout, 8);
}
cout << '\n';
}



// swap k and l columns
for (int i=0; i<n; ++i)
swap (a[i*n+k-1], a[i*n+l-1]); // swap Matr[i][k] and Matr[i][l]

// output result
SetConsoleTextAttribute(hStdout, 6);
cout << "Result:\n";
SetConsoleTextAttribute(hStdout, 6);

// Добавление здесь
//**************************
for (int i=0; i<n; ++i)
{
for (int j=0; j<n; ++j) {
if( j == l - 1 )
SetConsoleTextAttribute (hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
if( j == k - 1 )
SetConsoleTextAttribute (hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout << a[i*n+j] << ' ';
if( j == k - 1 || j == l - 1 )
SetConsoleTextAttribute(hStdout, 8);
}
cout << '\n';
}
int x;
int i;
if (i==k){SetConsoleTextAttribute(hStdout, 18);}

getchar();
getchar();

return 0;
}

criz
02.02.2008, 16:30
Можно еще и так :)

for (i=0; i<n; ++i)
{
for (int j=0; j<+n; ++j)
{
if (j == k-1 || j == l-1)
SetConsoleTextAttribute(hStdout, 4);
else
SetConsoleTextAttribute(hStdout, 6);
cout << a[i*n+j] << ' ';
}
cout << '\n';
}

dro3zzd
09.02.2008, 21:08
Мне нужно выбрать любое целое число, которое было бы больше единицы и меньше данного и которое было бы взаимно простым с этим данным (выбор числа e при реализации алгоритма шифрования RSA - http://ru.wikipedia.org/wiki/Rsa). Никак не могу понять, как это сделать, точнее как это именно записать кодом.

Буду очень признателен за помощь. Заранее Благодарю!

Jes
09.02.2008, 22:14
http://www.example-code.com/vb/rsa.asp

тема переезжает в лаботрторные ...

ph0en1x
10.02.2008, 16:40
Помогите с лабораторкой:
Задание А:
Создать два файла, содержащих сведения о десяти нападающих хоккейных команд "Динамо" и "Спартак"
соответсвенно: имена нападающих, число заброшеных шайб, сделанные голевые передачи, заработанное штрафное время.

Задание Б: написать программу, которая по данным, извлечённым из этих файлов, создаёт новый третий файл, содержащий имя, команду, сумму очков(голы+ передачи) для шести лучших игроков обеих команд.
Имена и показатели результативных хоккеистов вывести на экран.

Язык С++.

St0nX
17.02.2008, 00:39
А
#include<stdio.h>

void main(void)
{
FILE *file1;
FILE *file2;
char ab[]="";
int i = 1;
file1 = fopen( "Dinamo.txt", "w" );
file2 = fopen( "Spartak.txt", "w" );
printf("Dinamo \n");
while(i!=11)
{
printf("Igrok - %d\n",i);
printf("Name: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file1 );
printf("Shaibi: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file1 );
printf("Peredachi: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file1 );
printf("Straf: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file1 );
i++;
}
printf("================================================== \n");
printf("Spartak \n");
i=1;
while(i!=11)
{
printf("Igrok - %d\n",i);
printf("Name: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file2 );
printf("Shaibi: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file2 );
printf("Peredachi: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file2 );
printf("Straf: ");
scanf("%s \n",ab);
fputs( ab, file1 );
fputs( "\r\n", file2 );
i++;
}
fclose( file1 );
fclose( file2 );
}
извеняюсь за кривость

FORCE
17.02.2008, 11:45
Эта программа переводит футы и дюймы в метры и сантиметры. В метры переводятся правильно, а сантиметры отображаются отрицательным
числом. В чём ошибка? :confused:
Формат ввода:
12F 23D
(F-футы D-дюймы)
А выводит примерно так:
12M -23SM

код C++


#include <conio.h>
#include <iostream.h>
int main()
{
double d,c,f;
int l,k,s,t,b;
int z;
char m[10];
double y;
char x[10];
double h;
printf("vvedite | ** , gde | -luboe chislo, **-F,D,M,SM\n");
k=scanf("%lf %s", &y, m);
t=scanf("%lf %s", &h, x);
if (strcmp(m,"F")==0)
if (strcmp(x,"D")==0){
c=y*0.3048;
d=h*2.54/100;
f=c+d;
l=(int)f;
z=(l-f)*100;
cout << "\n " << l<<"M "<<z<<"SM";
getch();
}
}

St0nX
17.02.2008, 16:57
Программа не правильно переводис в СМ даже если бы было "+" а так если у тебя проблема именно в "-"

z=(f-l)*100;

и будет тоже самое токо с "+"

Nea7
17.02.2008, 17:42
Эта программа переводит футы и дюймы в метры и сантиметры. В метры переводятся правильно, а сантиметры отображаются отрицательным
числом. В чём ошибка? :confused:
Формат ввода:
12F 23D
(F-футы D-дюймы)
А выводит примерно так:
12M -23SM
c=y*0.3048;
d=h*2.54;
cout << "\n" << c<<"M "<<d<<"SM";
vvedite | ** , gde | -luboe chislo, **-F,D,M,SM
12F 23D

3.6576M 58.42SM

переводит правильно.. что ты намудрить пытаешься?

xxxxxxxxxxxxxxx
19.02.2008, 19:39
кто может написать прогу которая умножает число из 500 знаков на любое введенное с клавиатуры число?
с++

A2GIL
19.02.2008, 19:43
кто может написать прогу которая умножает число из 500 знаков на любое введенное с клавиатуры число?
На каком Языке?

z01b
19.02.2008, 21:41
кто может написать прогу которая умножает число из 500 знаков на любое введенное с клавиатуры число?
с++
Сдесь вроде есть сырцы от кузьмича, только вот не знаю если он умножает число из 500 цифр.

FORCE
20.02.2008, 12:18
С первой проблемой разобрался.
Я сделал также обратный перевод (метры сантиметры-футы дюймы)
Но вот почему прога переводит неправильно?

Напрмер:
Ввод футов и дюймов
12F 34D
Вывод:
56M 78SM

Значит при вводе
56M 78SM
должно выводиться
12F 34D
Но не выводит :(
Замена 100 на 12 не помогла(так как в футе 12 дюймов)


P.S ВСЕ ЧИСЛА ПРИВОДИЛИСЬ НЕТОЧНЫЕ ДЛЯ ПРИМЕРА.

Код проги если надо выложу

KSoniX
20.02.2008, 15:18
force задавай дюймы меньше 12 все нормально будет работать

FORCE
20.02.2008, 17:22
И всё равно не работает

GuK0s
21.02.2008, 13:20
http://depositfiles.com/files/3677097
Кто может решить задачку на Turbo Pascal ? С меня + ну если рядом живёте то и пиво =)

krypt3r
21.02.2008, 13:54
program kursovaya_rabota;

var
a, b : longint;

begin
b := 100111111;
write ('Умножьте два двоичных числа: 01101 и 001011 - и введите ответ: ');
readln (a);
if b = a then
writeln ('Ответ верен')
else
writeln ('Ответ неверен');
end.

В архиве код какого-то древнего паскаля? о_О

GuK0s
21.02.2008, 14:03
хз мб и древний паскаль, препод сказал сделать =) А в проге получается не должны вычисляться числа 01101 и 001011. Т.е Их сам считаешь и вводишь результат?

krypt3r
21.02.2008, 14:19
Ога, это типа умеешь ли ты юзать калькулятор в бинарном режиме или выполнять арифметические действия с бинарными числами столбиком))

Smapt
23.02.2008, 01:52
Может есть у кого алгоритм "Сведения матриц к матрицам с преобладающими деогональными элементами" на любом языке)

Sharingan
24.02.2008, 19:20
День добрый, такое дело, срочно нужна лаба, времени что бы самому разбираться и делать нет....
Нужна программа для Решения Систем линейных уравнений(СЛАУ). Метод Последовательных исключений Гаусса! Язык Исполнения С(С++)
Вообще это и нагуглить можно, но как сказал уже времени нет. Буду ООчень благодарен =)

GuK0s
24.02.2008, 19:27
День добрый, такое дело, срочно нужна лаба, времени что бы самому разбираться и делать нет....
Нужна программа для Решения Систем линейных уравнений(СЛАУ). Метод Последовательных исключений Гаусса! Язык Исполнения С(С++)
Вообще это и нагуглить можно, но как сказал уже времени нет. Буду ООчень благодарен =)

ХЗ может ето?
http://www.alexeypetrov.narod.ru/C/gauss_about.html

akwaNOX
25.02.2008, 15:05
помогите разобраться с программой(лаба) вот отрыврк из нее:
if ((n.Uout(t)==14.0) && (lk==0)) {

o=t;
lk=1;
}
if ((n.Uin(t)>=n.Uin(t+lo)) && (lk1==0)) {
o1=t;
lk1=1;
}

препод задал вопрос для чего в этом месте между n и Uin используется точка
if ((n.Uin(t)>=n.Uin(t+lo)) && (lk1==0)) {

Delimiter
25.02.2008, 16:10
n.Uin()
обращение к методу класса n

CraF
25.02.2008, 23:45
Ребята, помогите пожалуйста. Дали в универе. Turbo Pascal.

Даны 2 матрицы А(3;3) В(4;4). Для каждой матрицы сформировать массив, содержащий максимальный элемент строк. Ввод,формирование, вывод(полученного массива) выполнить в процедурах..

очень прошу, помогите..

Garfi
26.02.2008, 00:00
>>сформировать массив, содержащий максимальный элемент строк

нельзя объявлять массив с максимальными элементами
"type a = array [1..n] of ..."
где n - походу максимальный элемент, или я чего то не понял???

CraF
26.02.2008, 00:06
>>сформировать массив, содержащий максимальный элемент строк

нельзя объявлять массив с максимальными элементами
"type a = array [1..n] of ..."
где n - походу максимальный элемент, или я чего то не понял???
не знаю даже, препод дал именно такое задание? а как можно по-другому решить, мне бы хотя бы какой-нибудь листинг к завтрашнему дню показать, спасибо заранее.

Garfi
26.02.2008, 00:12
Я так понял надо 2 массива сделать один A, другой B, данные будут браться из матриц, которые (данные) перед этим надо ввести и потом оба массива (или массив???) вывести на экран?

CraF
26.02.2008, 00:15
Я так понял надо 2 массива сделать один A, другой B, данные будут браться из матриц, которые (данные) перед этим надо ввести и потом оба массива (или массив???) вывести на экран?
дада, именно, только вывод массивов выполнить в процедурах, все правильно. помоги пожалуйста.

Garfi
26.02.2008, 00:27
дада, именно, только вывод массивов выполнить в процедурах, все правильно. помоги пожалуйста.
создаеш 2 двумерных массива один на 3 другой на 4 элемента, потом (как бы я сделал) ставиш рандомно заполнение ячеек матриц (мы их в школе сетками называем, это одно и тоже?) потом присваиваеш ячейкам из сетки такую же ячейку массива, а в конце выводиш оба массива на экран (кстати почему именно процедурами? веяние дельфи?), вроде так.

P.S. вроде помог, все разжевал тебе только код написать...ща репу спасиб
P.S.S. убил бы того, кто эти задания составляет

CraF
26.02.2008, 00:33
создаеш 2 двумерных массива один на 3 другой на 4 элемента, потом (как бы я сделал) ставиш рандомно заполнение ячеек матриц (мы их в школе сетками называем, это одно и тоже?) потом присваиваеш ячейкам из сетки такую же ячейку массива, а в конце выводиш оба массива на экран (кстати почему именно процедурами? веяние дельфи?), вроде так.

P.S. вроде помог, все разжевал тебе только код написать...ща репу спасиб
P.S.S. убил бы того, кто эти задания составляет
Примерно вроде понял, только я никогда не мог запомнить синтаксис вообще любого языка, мог бы мне помочь с кодом, если не сложно конечно. Я сейчас намалюю не знаю чего, а потом на это смотреть как баран на ворота новые, а сдать уже к завтршнему дню нужно =\

KEZ
26.02.2008, 01:09
>n.Uin()
обращение к методу класса n

врешь, не обязательно

Garfi
26.02.2008, 10:46
Примерно вроде понял, только я никогда не мог запомнить синтаксис вообще любого языка, мог бы мне помочь с кодом, если не сложно конечно. Я сейчас намалюю не знаю чего, а потом на это смотреть как баран на ворота новые, а сдать уже к завтршнему дню нужно =\
так бы сразу и написал, напиши мне исходник... :)

Forcer
26.02.2008, 21:57
>n.Uin()
обращение к методу класса n

врешь, не обязательно
n может быть структурой, а Uin() - функцией-членом этой структуры.

Delimiter
27.02.2008, 02:35
:p я сказал в соответствии с кодом.... что приблизительно ждал препод :D
перегрузки функций методов тоже не касался так что можете пофантазировать 8))))

SHLAK
27.02.2008, 18:39
дан двумерный массив. выведите номера столбцов все элементы , которых честные числа.
с++
массив можно от себя задать

Delimiter
27.02.2008, 19:17
#include "stdio.h"
#define N 3
#define M 3
int A[N][M]={ 1,2,3,
4,4,6,
7,8,9 };
void print_col(void)
{
int f,i,j;
for(i=0;i<M;i++)
{
for(j=0,f=0;j<N;j++)
if(A[j][i]%2==1)
f=1;
if(f==0)
printf("%d,",i);
}
}
void main()
{
print_col();
}

//вывод номера колонок начиная с нуля

Darkor
28.02.2008, 19:34
Задание: Создать Windows - приложение
- Программа должна содержать две формы - форму ввода и форму вывода.
- Задача должна быть реализована в рамках отдельного класса
- Форма вывода должна показывать введенные данные и результаты

Задача: Нужна программа для ведение ведомости
Главное - чтоб был список студентов и список предметов
и скажем в ListBox or ListView
и отдельное окно для вывода - желательно с функцией сохранения(что-то типо простенького редактора)
_____________________________________________
Заранее сп.

Delimiter
28.02.2008, 19:57
дык программа нужна или исходники???
:rolleyes:

Darkor
28.02.2008, 21:15
исходники
прям ппц как надо

Zedobat
29.02.2008, 11:55
Найти наиболее часто повторяющееся число в массиве.
delphi