ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #371  
Старый 05.04.2008, 16:34
043nKRuT0y
Участник форума
Регистрация: 31.10.2007
Сообщений: 213
Провел на форуме:
394522

Репутация: 14
По умолчанию

2 krypt3r : слушай подскажы как в выше описаном тобой коде о полендромном слове прыисходит выделение слова а то я немогу догнать даную конструкцыю ! И что означает даная конструкцыя "((s1 = strchr (s1, 0x20)) != NULL)" особенно 0x20 ато я с таким еще не сталкивалса , а препад напрягает )
 
Ответить с цитированием

  #372  
Старый 07.04.2008, 08:47
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Как понять фразу?
Цитата:
как в выше описаном тобой коде о полендромном слове прыисходит выделение слова
Как в слове происходит выделение слова О.О? Или имелось в виду выделение слова из введенной строки? В коде юзаются два указателя, которые указывают (сорри за тавтологию=) на начало двух соседних слов, разделенных пробелом. Символы, находящиеся между этими указателями, принадлежат одной строке
Функция strchr
Цитата:
НАЗВАНИЕ
strchr, strrchr - определение местонахождения символа в строке
СИНТАКСИС
#include <string.h>
char *strchr(const char *s, int c);
char *strrchr(const char *s, int c);
ОПИСАНИЕ
Функция strchr() возвращает указатель на местонахождение первого совпадения с символом c в строке s.
Функция strrchr() возвращает указатель на местонахождение последнего совпадения с символом c в строке s.
Здесь, "символ" означает "байт" - эта функция не работает с широкими и многобайтными символами.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функции strchr() и strrchr() возвращают указатель на совпадения с соответствующим символом, а если символ не найден, то возвращают NULL.
Другими словами,
Код:
while ((s1 = strchr (s1, 0x20)) != NULL)
ищет в строке пробел. 0x20 - это шестнадцатиричный код пробела, если смущает, замени его на более понятный вариант
Код:
while ((s1 = strchr (s1, ' ')) != NULL)
Если пробел не найден, то возвращает NULL и выходит из цикла, если пробел найден, то прогоняем цикл для выделения слова, его реверсинга и сравнения "обратного" слова с оригинальным. Последнее происходит с помощью функции strstr. Ну тут все просто. Читай ман
Цитата:
НАЗВАНИЕ
strstr - поиск подстроки
СИНТАКСИС
#include <string.h>
char *strstr(const char *haystack, const char *needle);
ОПИСАНИЕ
Функция strstr() находит первую встретившуюся подстроку needle в строке haystack. Завершающие символы '\0' не сравниваются.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функция strstr() возвращает указатель на начало найденной подстроки или NULL, если подстрока не найдена.
 
Ответить с цитированием

  #373  
Старый 09.04.2008, 01:15
Pechenushka
Новичок
Регистрация: 02.04.2008
Сообщений: 28
Провел на форуме:
979643

Репутация: 20
Отправить сообщение для Pechenushka с помощью ICQ
По умолчанию

Решите пожалуйста задачу. Сроки жмут, а я все пары по информатике прогулял, думая что там меня ничему новому не научат, теперь каюсь. Решение необходимо на Турбо Паскале... Заранее спасибо.
------------
Дана матрица А:
-4.1 5.8 -6.7 4.3
2.1 -5.1 6.3 -4.7


Найти
Р=<сумма элементов 1 строки> - <произведение элементов 2й строки>

b [1...n, 1...m]
bij, b[i,j]
--------------------
 
Ответить с цитированием

перемножение матриц с помощью указателей
  #374  
Старый 09.04.2008, 16:28
Jairam
Новичок
Регистрация: 27.03.2008
Сообщений: 7
Провел на форуме:
56723

Репутация: 14
По умолчанию перемножение матриц с помощью указателей

Нужно переделать так, чтобы в функции result вместо sum=sum+a[i][h]*b[h][j]; использовались указатели.

C++
Цитата:
2. МУЛЬТ

Перемножить две квадратичных целочисленных матрицы (со случайными значениями) размером N x N (N = 100) с помощью указателей и адресной арифметики. Обращение к элементам матрицы в виде m[i][j] разрешено только в исключительных ситуациях! Оптимизировать код программы путем «чистки циклов».

Память для матрицы m[N][N] выделяется «построчно»:

m[0][0] … m[0][N-1] m[1][0] … m[1][N-1] …….. m[N-1][0] … m[N-1][N-1]
Код:
#include<iostream>
#include <conio.h>
using namespace std;

void fillarray(int * array[], int m, int n)
{
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
            array[i][j]=rand() % 10; //fill with random value from 0 to 9
            cout<<array[i][j]<<"\t"; //print to screen
        }
    cout<<"\n"; //"\n"=endl
    }
    cout<<endl;
}

void result(int * a[], int * b[], int m, int k, int n)
{
    int sum;
    cout<<"Result "<<m<<"x"<<n<<" array:"<<endl<<endl;

    for(int i=0; i<m; i++)
    {
        for(int j=0; j<n; j++)
        {
            for(int h=0; h<k ;h++)
            {
                sum=sum+a[i][h]*b[h][j]; //matrix multiplication
            }
            cout<<sum<<"\t"; //print to screen
            sum=0;             
        }
        cout<<endl;
    }    
}

int main()
{
    srand(time(NULL));
    int m,n,k;
    
    cout<<"Put first array size: "<<endl<<"m: ";
    cin>>m; cout<<"n: "; cin>>k;
    cout<<"Put second array size: "<<endl<<"m: "<<k<<endl<<"n: ";
    cin>>n; cout<<endl;
    /* allocate memory */
    int**p=new int *[m],**q=new int*[k];
    for (int i=0;i<m;i++) p[i]=new int[k];
    for (int i=0;i<k;i++) q[i]=new int[n];

    fillarray(p,m,k);
    cout<<"*"<<endl<<endl;
    fillarray(q,k,n);
    cout<<"="<<endl<<endl;
    result(p,q,m,k,n);
    /* free memory */
    for (int i=0;i<k;i++) delete p[i];
    for (int i=0;i<n;i++) delete q[i];
    delete[] p, q;

    cout<<endl<<"Press any key..."<<endl;
    getch();
    return 0;
}
хэлп ми энибади...

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

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>

int const N =3;

int ** func(int **m, int **n)
{
int **v;
int i, j, f, l, h, k;

v = (int**)malloc(sizeof(int) * N);

if(v == NULL)
{
printf("Not ehough memory!\n");
getch();
exit(1);
}

for(i=0; i<N; i++)
{
*(v+i) = (int*)malloc(sizeof(int)*N);

if(*(v+i) == NULL)
{
printf("Not enough memory!\n");
getch();
exit(1);
}
}
i = j = k = h =0;
for (f=0; f<N; f++)
{
for(l=0; l<N; l++)
{
int sum=0, current;
for(j=0,k=0; j<N,k<N; j++,k++)
{
current = *(*(m+i)+j) * *(*(n+k)+h);
sum += current;
}
*(*(v+f)+l) = sum;
h++, j=0, k=0;
}
i++, j=0, k=0, h=0;
}
return v;
}

int main()
{

int **m;
int **n;
int **v;
n = m = (int**)malloc(sizeof(int) * N); // v6deljaem pamat'
int i,j,k,h,f,l;
srand(time(NULL));

for (i=0; i<N; i++){
m[i] = (int*)malloc(sizeof(int)*N);// v6deljaem pamat'
for(j=0; j<N; j++){
m[j] = (int*)malloc(sizeof(int)*N);}}

for (k=0; k<N; k++){
n[k] = (int*)malloc(sizeof(int)*N);// v6deljaem pamat'
for(h=0; h<N; h++){
n[h] = (int*)malloc(sizeof(int)*N);}}

for (i=0; i<N; i++){
for(j=0; j<N; j++){
*(*(m+j)+i) = (rand() % 10) + 1; }} // zapolnjaem matrix

for (i=0; i<N; i++){
for(j=0; j<N; j++){ printf("%d\t", m[i][j]); } printf("\n"); }
printf("\n*\n\n");

for (k=0; k<N; k++){
for(h=0; h<N; h++){
*(*(n+h)+k) = (rand() % 10) + 1; }} // zapolnjaem matrix
for (k=0; k<N; k++){
for(h=0; h<N; h++){ printf("%d\t", n[k][h]); } printf("\n"); }
printf("\n=\n\n");

v = func(m, n);
for (i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
printf("%d\t", *(*(v+i)+j));
}
printf("\n\n");
}
getch ();
return 0;
}
P.S. Тем, кто поможет, плюсы, а также $$$ (призовой фонд 20 WMZ )
 
Ответить с цитированием

  #375  
Старый 09.04.2008, 17:32
KSoniX
Познающий
Регистрация: 17.01.2008
Сообщений: 94
Провел на форуме:
314553

Репутация: 38
Отправить сообщение для KSoniX с помощью ICQ
По умолчанию

Jairam вы 2 коду malloc поменяй на new и тебе новый код а если тебе нужно по другому алгоритму то стучи по ICQ № 465-497-196
 
Ответить с цитированием

  #376  
Старый 11.04.2008, 00:29
Pechenushka
Новичок
Регистрация: 02.04.2008
Сообщений: 28
Провел на форуме:
979643

Репутация: 20
Отправить сообщение для Pechenushka с помощью ICQ
По умолчанию

Просил решить задачу, но никто не отписАл... Вот, если у кого будет такая/похожая выкладываю решение:
Program matrix2;
Uses CRT;
Var b:array [1..2,1..4] of real;
i,j:integer;
p,p1,p2:real;

BEGIN
ClrScr;
b[1,1]:=-4.1;
b[1,2]:=5.8;
b[1,3]:=-6.7;
b[1,4]:=4.3;
b[2,1]:=2.1;
b[2,2]:=-5.1;
b[2,3]:=6.3;
b[2,4]:=-4.7;

Writeln('vivod matrx');
For i:= 1 to 2 do
begin
For j:=1 to 4 do
begin
Write(b[i,j]:3:1);
Write(' ');
end;
Writeln;
end;
p:=0;
p1:=0;
p2:=1;
For j:=1 to 4 do
begin
p1:=p1+b[1,j];
p2:=p2*b[2,j];
end;
p:=p1-p2;
Writeln('p=',p:6:2);
readkey;
END.
 
Ответить с цитированием

Экспертная система
  #377  
Старый 11.04.2008, 10:46
CTPAHGEP
Новичок
Регистрация: 09.04.2008
Сообщений: 1
Провел на форуме:
2138

Репутация: 0
По умолчанию Экспертная система

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

  #378  
Старый 16.04.2008, 15:28
advokat.holy
Новичок
Регистрация: 05.03.2008
Сообщений: 11
Провел на форуме:
46977

Репутация: 1
По умолчанию

Всем привет! Люди помогите плЗзз.
Вот задание:
сформировать и вывести на экран вектор(масив одновымерный) из N целых случайных чисел,
каторые принимают значения на отрезке [a,b]. Границы интервала ([a,b])
ввести с клавы. Найти среднее арифметическое случайных чисел,
с них же найти максимальный минимальный елементы и их порядковые номера.
Да чуть не забил, для работы с массивами нужно использовать УКАЗАТЕЛЬ(ЛИ).
 
Ответить с цитированием

  #379  
Старый 16.04.2008, 17:16
hackconnect
Познающий
Регистрация: 08.03.2007
Сообщений: 65
Провел на форуме:
91259

Репутация: 16
Отправить сообщение для hackconnect с помощью ICQ
По умолчанию

только если есть готовые решения или их часть.
На С/С++/c# надо написать прогу, в которой рисуется многогранник произвольный, который можно будет крутить в разные стороны.

просто не очень охота изучать опенГЛ или директикс

ЛИБО

код на OpenGL для вывода различных многогранников.

Последний раз редактировалось hackconnect; 16.04.2008 в 21:35..
 
Ответить с цитированием

  #380  
Старый 18.04.2008, 11:58
Ivanich
Новичок
Регистрация: 19.03.2008
Сообщений: 3
Провел на форуме:
21476

Репутация: 0
По умолчанию

Срочно нужна помоч.

Помогите сделать задачи.
первая:

Номиналы россиыских рублей могут принимать значения 1,2,5,10,50,100,500,1000,5000. Копейки представить как 0.01 (1 копейка), 0.05 (5 копеек). 0.1 (10 копеек), 0.5 (50 копеек). Создать клаасс Money для работы с денежными суммами. Сумма должна быть представлена полями-номиналами, значениями которых должно быть количество купюр данного достоинства. Реализовать сложение сумм, вычитание сумм, деление сумм, деление суммы на дробное число, умножение на дробное число и операции соавнения. Дробная часть (копейки) при выводе на экран должны быть отделена от целой запятой.

Вторая задача.

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

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

# метод инициализации Init;

# ввод с клавиатуры Read;

# вывод на экран Display;

# преобразование в строку tostring.

Все задания должны быть реализованы тремя способами.

1. тип данных представляется структурой с необходимыми полями, а операции
реализуются как внешние функции, которые получают объекты данного типа в
качестве аргументов.
2. Как класс с закрытыми полями, где операции реализуются как методы класса.

3. инкапсулировать поля класса в независимой структуре и в ней реализовать методы Init(), Read(), Display(), tostring(). В основном классе должно быть поле данных, представленное объектом структурой.[/I][/QUOTE]
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ