C#.NET

Член од
13 ноември 2010
Мислења
242
Поени од реакции
58
Аку може некој да ми ја направи задачава... фала ондпаред


Да се најдат сите природни броеви помали од природниот број nвнесен преку тастатура, кои што се деливи со сите свои цифри.

и плус да ги имаа овие работи..
3. Објаснување

Се дава детален опис за тоа како работи предложениот програм, и тоа генерално како е замислен алгоритамот, и линија по линија што прави програмот.


4. Комплексност

Се проценува времето на извршување на предложениот програм, и се дава проценка на редот на комплексноста на програмот.
void prime_num(long num){

// bool isPrime = true;
for(long i =0; i <= num; i++)
{
bool isPrime =true;// Move initialization to here
for(long j =2; j < i; j++)// you actually only need to check up to sqrt(i)
{
if(i % j ==0)// you don't need the first condition
{
isPrime =false;
break;
}
}
if(isPrime)
{
Console.WriteLine("Prime:"+ i );
}
// isPrime = true;
}}

--- надополнето: 1 јануари 2012 во 22:17 ---
Да бидам подетален , еве ти тука имаш неколку имплементации http://stackoverflow.com/questions/1510124/program-to-find-prime-numbers
 

deXterche

тадаммм
Член од
12 февруари 2006
Мислења
4.920
Поени од реакции
942
void prime_num(long num){


// bool isPrime = true;
for(long i =0; i <= num; i++)
{
bool isPrime =true;// Move initialization to here
for(long j =2; j < i; j++)// you actually only need to check up to sqrt(i)
{
if(i % j ==0)// you don't need the first condition
{
isPrime =false;
break;
}
}
if(isPrime)
{
Console.WriteLine("Prime:"+ i );
}
// isPrime = true;
}}

--- надополнето: 1 јануари 2012 во 22:17 ---
Да бидам подетален , еве ти тука имаш неколку имплементации http://stackoverflow.com/questions/1510124/program-to-find-prime-numbers
Си ја утнал темава... друго се бара во задачата
 
Член од
19 октомври 2011
Мислења
296
Поени од реакции
253
Аку може некој да ми ја направи задачава... фала ондпаред


Да се најдат сите природни броеви помали од природниот број nвнесен преку тастатура, кои што се деливи со сите свои цифри.

и плус да ги имаа овие работи..
3. Објаснување

Се дава детален опис за тоа како работи предложениот програм, и тоа генерално како е замислен алгоритамот, и линија по линија што прави програмот.


4. Комплексност

Се проценува времето на извршување на предложениот програм, и се дава проценка на редот на комплексноста на програмот.
Еве ја ќе пробам да ја решам задачата, ама во C, ти после ќе си ја трансформираш во C#, треба да ти е piece of a cake тоа. ;) Одамна не сум решавал ваков тип на задачи, па ајде да се испробам. Само да знаеш вака не се учи програмирање. :D Без своја мака не бидува добар програмер. ;) Stay tuned за решението. :D
--- надополнето: 2 јануари 2012 во 18:30 ---
99% ти ја изработив програмата, да знаеш дека баш уживав да си ги тестирам способносите и добро е, не сум заборавил некои работи. :D


Код:
#include <stdio.h>
#define MAX 100
 
//By WildMan - from Kajgana :)))
 
int main()
{
int i, j=0, broj, m=0, cifra, temp;
int nizaCifri[MAX];
printf("Vnesi cel broj: ");
scanf("%d", &broj);
temp = broj;
while(broj>0)
{
    cifra = broj%10;
    nizaCifri[j]=cifra; j++;
    broj/=10;       
} 
 
for(i=0; i<j; i++)
{
int cifra2 = nizaCifri[i];
if(temp%cifra2==0) m++;
}
 
if(m==j)
printf("BROJOT %d E DELIV SO SITE SVOI CIFRI\n", temp);
else
printf("Brojot %d NE e deliv so site svoi cifri!\n", temp);
 
system("pause");
}
Задачава работи во Dev-C++. Не ја коментирав затоа што сметам дека треба да е јасна, како и да е, не е целосна, ти недостасува тој 1%. :D Задачата важи само за 1 број, значи внесуваш број и програмата ти кажува дали тој е делив со сите свои цифри или не е. Проблемот го решив така што ги оделував цифрите од бројот и ги сместив во помошна низа, која после ја користев за да проверувам дали првично внесениот бројот е делив со секоја цифра посебно. И ако е делив со сите цифри од низата, значи е делив со сите свои цифри. :) Во спротивен случај, не е делив. Ти треба само да вметнеш еден for циклус за да ги опфатиш сите броеви од 1 до n. Верувам ќе се снајдеш, во спротивен случај ќе го доправам и тоа, ама цената е 500 денари. :LOL: :P Задачава е 100% мој труд, каква е таква е, битно е дека имав идеја и еве ја реализирав во код. Мислам дека работи коректно, тестирав со повеќе броеви и добро излегува. Послужи се слободно со кодот и претстави го како свој труд, иако длабоко во себе ќе знаеш дека не е така. :)
Поздрав :cool:
 
Член од
19 октомври 2011
Мислења
296
Поени од реакции
253
Мала “грешка“ си најдов во задачата. Не е грешка, ама нешто на кое треба да се внимава. Со 0 не е дозволено делење, така што ако некој број завршува на цифра 0, треба да му се каже на програмот да ја прескокне цифрата и да проверува за други цифри. Ако внесеш на пр. број 20, 50, 1000, 350 или било кој број чија последна цифра е 0 (или воопшто ако содржи 0), ќе има crash. Затоа мала корекција треба. Е тоа сакав само да додадам. :D

Код:
for(i=0; i<j; i++)
{
int cifra2 = nizaCifri[i];
 
if(cifra2==0)
{
m++;
continue;
}
 
if(temp%cifra2==0) m++;
}
 

Dzish

unlike any other...
Член од
15 февруари 2007
Мислења
13.994
Поени од реакции
2.689
Ако внесеш на пр. број 20, 50, 1000, 350 или било кој број чија последна цифра е 0 (или воопшто ако содржи 0), ќе има crash.
Попаметно ќе ти биди делењето да го туриш во try catch делче... и ако има 0 ќе се изврши catch делот. Нејќум да ти солам памет, кратно и едноставно со try се минимизира (оптимизира) кодот.
 
Член од
19 октомври 2011
Мислења
296
Поени од реакции
253
Попаметно ќе ти биди делењето да го туриш во try catch делче... и ако има 0 ќе се изврши catch делот. Нејќум да ти солам памет, кратно и едноставно со try се минимизира (оптимизира) кодот.
Знам дека кодот не ми е најоптимизиран, ама барем среќен сум што целосно е моја реализација. :) Исто и не мораше цифрите да ги оделувам во низа, можев да проверувам за секоја цифра и ако е делив со таа цифра продолжувам (со continue) со наредната цифра, ако не е делив правак break и пишувам дека бројот не е делив со сите свои цифри. Да не ситничариме сега, ако не е битна оптимизацијата на кодот, тогаш програмата работи перфектно. :D
 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
Попаметно ќе ти биди делењето да го туриш во try catch делче... и ако има 0 ќе се изврши catch делот. Нејќум да ти солам памет, кратно и едноставно со try се минимизира (оптимизира) кодот.
Колку што знам try catch throw се користат вака. Пример имаш некој метод во слојот за бизнис и ако методов прими неочекуван влез фрла грешка.
Па после во метод од слојот за ГУИ имаш try catch и ако корисников внеси да речиме брока надвор од границите бизнис методот ќе фрли а ГУИ методот ќе ја фати грешката и ќе извести.

Е сеа ако спец. вика ако бројот има нули сметај го за делив или за неделив тогаш треба едноставна проверка дали делителот е нула. А да има try catch внатре во форот не ефикасно оти една грешка е креирање на цел објект што не е оптимизација.

Ако спец вика броеви со нули не се дефинирани тогаш методот би имал само throw ако сретни 0. A дури и тоа немора оти кога ќе делиш со 0 c# автоматски ќе исфрли.
 
Член од
23 ноември 2011
Мислења
2
Поени од реакции
0
  1. Здраво! Дечки јас не ја разбирам задачава. Ќе замолам некој по професионалец да издвои малку време и да ми помогне. Се надевам не е толку страшна. . инаку за домашна ми е . Грчко-латински квадрат од ред n е поле G со димензии nxn од броеви:
Ако има некој кој му фаќа око овој ти на задача со квадрат нека ми пише.--- надополнето: 15 јануари 2012 во 22:51 ---
Ова е нејасната задачка :(
 

Attachments

Хептаграм XI

Ἱερὸς Γάμος
Член од
13 февруари 2010
Мислења
12.249
Поени од реакции
12.260
Повели!
Код:
             int br = 5;
            int[,] k = new int[br, br];
            int[,] l = new int[br, br];
            int[,] g = new int[br, br]; //grcko-latinskiot kvadrat
            int[] redica = new int[br * br];
            int d = 0;
            Random s=new Random(20);//za random popolnuvanje na matrici
 
            //popolnuvanje so random broevi dvete matrici so dimenzii brxbr (5x5)
            for (int i = 0; i < br; i++)
                for (int j = 0; j < br; j++)
                {
                    k[i, j] = s.Next(20);
                    l[i, j] = s.Next(20);
                }
 
            //izvlekuvanje na matricata k vo redica za da moze da gi izmnozis so l-matricata
            for (int i = 0; i < br; i++)
                for (int j = 0; j < br; j++)
                {
                    redica[d] = k[i, j];
                    d++;
                }
            d = 0;
            //mnozenje na l-matricata so elementi od redicata za da se dobie g-matricata
            for (int i = 0; i < br; i++)
                for (int j = 0; j < br; j++)
                {
                    g[i, j] = redica[d] * l[i, j]; //baraniot grcko-latinski kvadrat
                    d++;
                }
Проверете го кодот мислам дека е ок :)
 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
  1. Здраво! Дечки јас не ја разбирам задачава. Ќе замолам некој по професионалец да издвои малку време и да ми помогне. Се надевам не е толку страшна. . инаку за домашна ми е . Грчко-латински квадрат од ред n е поле G со димензии nxn од броеви:
Ако има некој кој му фаќа око овој ти на задача со квадрат нека ми пише.--- надополнето: 15 јануари 2012 во 22:51 ---
Ова е нејасната задачка :(
Кодов погоре работи ама има непотребни пресметки. Задачава е едностана имаш две квардатни матрици од ист ред и ги множиш соодветните елементи (елементите на иста позиција) и се ставаат во трета.

Код:
            int br = 5;
            int[,] k = new int[br, br];
            int[,] l = new int[br, br];
            int[,] g = new int[br, br]; //grcko-latinskiot kvadrat
 
           //ги пополнуваме некако
 
 
            for (int i = 0; i < br; i++)
                for (int j = 0; j < br; j++)
                {
                    g[i, j] = k[i, j] * l[i, j]; //baraniot grcko-latinski kvadrat
                    d++;
                }
 

Хептаграм XI

Ἱερὸς Γάμος
Член од
13 февруари 2010
Мислења
12.249
Поени од реакции
12.260
Кодов погоре работи ама има непотребни пресметки. Задачава е едностана имаш две квардатни матрици од ист ред и ги множиш соодветните елементи (елементите на иста позиција) и се ставаат во трета.
Точно, има + една листа :) Бидејќи сите вака ги решаваат, школски задачките... па да смениме малку :)
Не се бара брзина или мал број пресметки, може да се игра со кодот ...
 

Џои

КИНЕКТиран
Член од
1 февруари 2007
Мислења
8.406
Поени од реакции
2.076
Некој некакво искуство со апликација за пуштање интернет радио? Да кликнам на баттон и да се поврзи пример на антена 5 и да си стримува?
 
Член од
5 август 2009
Мислења
1.295
Поени од реакции
484
Некој некакво искуство со апликација за пуштање интернет радио? Да кликнам на баттон и да се поврзи пример на антена 5 и да си стримува?
Сакаш тоа да го изведеш во C# или може VB?
 

Kajgana Shop

На врв Bottom