C++ zadaci,resenja,pitanja,tutoriali

Ukoliko hocete iz nekog drugog opsega, recimo [min-max], onda idete:
Kod:
[COLOR="#40E0D0"]int[/COLOR] randomBroj = RAND_MAX % (max - min + [COLOR="#EE82EE"]1[/COLOR]) + min;

A ukoliko hocete da racunar "pogadja broj", onda iskoristite binarnu pretragu i broj ce biti pronadjen u log(max-min) koraka. :)
 
Poslednja izmena:
С том поставком може да се јави проблем неуниформне расподеле.

Нпр. вредности {0, 1, 2, 3, 4} по модулу три се мапирају као:

0 -> 0
1 -> 1
2 -> 2
3 -> 0
4 -> 1

Ово чини да и 0 и 1 имају дупло већу шансу да се појаве од двојке. Зато волим униформно

rand \in [0, 1).

Онда за дискретне вредности {lo, ... , hi}:

Kod:
lo + floor(rand * (hi - lo + 1))
 
Da li neko moze da mi pomogne u vezi sa jednim zadatkom. Glasi:napisati program koji ce ucitati proizvoljan html dokumenta i odrediti koliko je reci napisano zadebljanim slovima. Tekst se prikazuje zadebljan, ako se nalazi izmedju <b> i </b> tagova. Ugnjezdenih blokova nema, sto znaci da tekst koji pocinje sa <b> zavrsava se sa </b> i tek onda moze da sledi novi <b>
 
Vrlo jednostavno.

Kod:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    float broj;
    int test = 0;
    cout << "Unesite neki broj od 1-100:" << endl;
    do {
        if(test > 0) cout << "Uneli ste broj van opsega, molimo vas unesite opet broj:" << endl;
       cin >> broj;    
       test++;
    } while (broj <=0 || broj >=101);
    system("PAUSE");
    return EXIT_SUCCESS;
}
2014-08-18135812-1.jpg


Imaj u vidu da ovaj način ne predviđa greške poput unosa karaktera (koji nije broj) i hvata opseg brojeva od 1-100 računajući same brojeve 1 i 100.
 

Prilozi

  • 2014-08-18135812.jpg
    2014-08-18135812.jpg
    39,1 KB · Pregleda: 1
Moze objasnjenje na koji nacin radi ovaj programcic
-Program treba ispisati unesenu rec u rastucem redosledu, npr. za unesenu rec LAV on bi trebao da ispise ovo
Program radi perfektno ali mi nije jasan nacin na koji radi (dvije for petlje), sta radi jedna a sta radi druga, boldovao sam linije koda koje mi nisu jasne

Kod:
int main()
{
    string r;
    int i,j;
    getline(cin,r);
    [B]for(i=0;i<=r.size();i++) {
    for(j=0;j<i;j++) 
    cout<<r[j];[/B]
    cout<<endl; }
    cout<<endl;
    system("PAUSE");
    return 0;
}
 
Је ли јасније ако се напише са још једним паром заграда?

Kod:
int main()
{
    string r;
    int i,j;
    getline(cin,r);
    [B]for(i=0;i<=r.size();i++)
    {
        for(j=0;j<i;j++)
        {
            cout<<r[j];[/B]
        }
        cout<<endl;
    }
    cout<<endl;
    system("PAUSE");
    return 0;
}

Иначе, један карактер може да се штампа и са cout.put(char). Ако ништа друго не користи стринг, можеш и овако да напишеш:

Kod:
void solve(char* str) {
	char* position = str;
	char buffer;
	if(!str || !*str) return;
	do {
		position++;
		buffer = *position;
		*position = 0;
		cout << str << endl;
		*position = buffer;
	} while(*position);
}

Онда се из main позва са solve("Lavica"); .
 
hvala tebi na odgovoru, ali mi nista nisi pomogao
nije mi jasna funkcija petlji, tj. sta radi prva a sta druga, a ovaj tvoj program mi je tek skroz nejasan

Sve se na prvi pogled vidi iz koda ali evo:

Spoljasnja petlja se vrti onoliko puta kolika je duzina stringa. Zasto? Pogledaj sta se trazi u tvom zadatku, i uzmi proizvoljnu rec. Koliko ispisa ocekujes? Videces da imas ispisa isto onoliko kolika je duzina reci. Prema tome, spoljasnja petlja ce se vrteti toliko puta.
Kada analiziras potreban izlaz, videces da i-ti ispis ima i karaktera. Prema tome, unutrasnja petlja u tekucem i-tom ispisu ispisuje prvih i karaktera u datom stringu.

Nisam bas toliko vest u objasnjavanju, ali nadam se da si razumeo bar nesto.
Nije to uopste neki komplikovan kod, daleko je od toga. Sve sto je bilo potrebno je da izanaliziras problem, tj. da na osnovu zadatog ulaza uocis kakav izlaz i u kojem formatu se ocekuje od tebe, i da nakon toga bar pokusas da protumacis kod.

A ako ne razumes indeksiranje nizova, ili petlje, ni ne moze se ocekivati da razumes ovo. Prvo nadji neku literaturu i to ponovi, a onda ponovo pogledaj kod.
I takodje, posto u ovom slucaju dimenzija stringa nije promenljiva, bolje je jednom pozvati metodu size, i to uskladistiti u neku promenljivu, nego nekoliko puta bespotrebno pozivati istu metodu.
 
Poslednja izmena:
I takodje, posto u ovom slucaju dimenzija stringa nije promenljiva, bolje je jednom pozvati metodu size, i to uskladistiti u neku promenljivu, nego nekoliko puta bespotrebno pozivati istu metodu.
Ово ме је подсетило на млађе дане. Ја сам мислио да је for довољно паметан да види шта је посреди и да кешира. Њет. Овако некако сам разбио сопствени мит:

Kod:
#include <iostream>
using namespace std;

int strlenz(const char* str) {
	cout << "STRELEN CALLED!!" << endl;
	return strlen(str);
}

int main() {
	char* str = "abc";
	for(int i=0; i < strlenz(str); i++) {
		cout.put(*(str+i));
	}
	cout << endl;
	return 0;
}
Излаз:
Kod:
STRELEN CALLED!!
aSTRELEN CALLED!!
bSTRELEN CALLED!!
cSTRELEN CALLED!!
 
Pitanje : Kako se pokreće ova najprostija naredba, tj. kad se ispiše komanda, šta stisnuti ili uraditi da bi bilo vidljivo : Zdravo, svete !
Bez smejanja molim, potrebna je informacija za osobu koja prvi put je u dodiru i sa računarom i sa C programskim jezikom.

Napisati program koji na standardni izlaz ispisuje poruku ”Zdravo, svete!”.
#include <stdio.h>
int main()
{
printf("Zdravo, svete!\n");
return 0;
}
Izlaz iz programa:
Zdravo, svete!

windows xp je operativni sistem
 
Poslednja izmena:
Kada kompiliras program, dobijas izvrsni fajl. Kada ga pokrenes, otvorice se konzola koja ce ispisati "Zdravo, svete!". Ali odmah po zavrsetku izvrsavanja programa, konzola se zatvara i verovatno zato imas utisak da se program nije ni pokrenuo, a ni ispisao "Zdravo, svete!". Probaj da kompiliras ovo, i onda pokreni. Time ces zadrzati konzolu otvorenom sve dok ne pritisnes neki karakter.
Kod:
[COLOR="#008000"]#include <stdio.h>[/COLOR]
[COLOR="#008000"]#include <stdlib.h>[/COLOR]

[B]int[/B] main()
{
    printf([COLOR="#FF0000"]"Zdravo, svete!\n"[/COLOR]);
    system([COLOR="#FF0000"]"PAUSE"[/COLOR]);
    [B]return[/B] [COLOR="#EE82EE"]0[/COLOR];
}
 
Pitanje : Kako se pokreće ova najprostija naredba, tj. kad se ispiše komanda, šta stisnuti ili uraditi da bi bilo vidljivo : Zdravo, svete !
Bez smejanja molim, potrebna je informacija za osobu koja prvi put je u dodiru i sa računarom i sa C programskim jezikom.

Napisati program koji na standardni izlaz ispisuje poruku ”Zdravo, svete!”.
#include <stdio.h>
int main()
{
printf("Zdravo, svete!\n");
return 0;
}
Izlaz iz programa:
Zdravo, svete!

windows xp je operativni sistem

Osoba iznad mene ti je odgovorila na pitanje, a što se tiče operativnog sistema, molim te promeni ga. Windows više ne vrši zakrpe za Windows XP, tako da je izuzetno izložen ranjivostima.
 
da li ima neko neku ideju da mi pomogne trebam da napravim neki program u c# za cas informatike da moze i prost da ima neku primenu nemam uopste neku dobru ideju sta bih mogao da napravim,pa ako neko od vas ima bio bih mu mnogo zahvalan.

Recimo to moze biti neki prost kalkulator sa osnovnim aritmetickim operacijama. Korisnik bi uneo prvi operand, operaciju i drugi operand, i program u zavisnosti od operacije ispise neku vrednost. Program se moze vrteti npr. dok ne uneses nepostojecu operaciju, tipa 5#2
 
Imam jedan zadatak, apsolutni sam pocetnik u C# progamiranju ali kroz ucenje dosta sam teorijski naucio ali imam zadatak koji me je skroz zbunio koji glasi...

Kreirati klasu Calculator, koja ima metode: WriteText i WriteNumber. Implementirati metode tako da budu zadovoljeni sledeći poziv


class Program
{
static void Main(string[] args)
{
string s = Calculator.WritText("Hello World!");
Console.WriteLine(s);

string n = Calculator.WriteNumber(53 + 28);
Console.WriteLine(n);
}
}

i da razultat u konzolnom prozoru izgleda ovako :

Hello World!
81
 
Imam jedan zadatak, apsolutni sam pocetnik u C# progamiranju ali kroz ucenje dosta sam teorijski naucio ali imam zadatak koji me je skroz zbunio koji glasi...

Kreirati klasu Calculator, koja ima metode: WriteText i WriteNumber. Implementirati metode tako da budu zadovoljeni sledeći poziv


class Program
{
static void Main(string[] args)
{
string s = Calculator.WritText("Hello World!");
Console.WriteLine(s);

string n = Calculator.WriteNumber(53 + 28);
Console.WriteLine(n);
}
}

i da razultat u konzolnom prozoru izgleda ovako :

Hello World!
81
Ukoliko si kod druge funkcije koristio UMESTO PLUSA , ZAREZ, onda bi to bilo lako, i verujem da je to mislio. Teško da će početniku dati sa plusom, i pitam se da li je to moguće. A evo sa zarezom kako ide:

Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Moj_prvi_projekat
{
    class Calculator
    {
        static string WriteText(string promenljiva)
        {
            return promenljiva;   
        }
        static string WriteNumber(int num1, int num2)
        {
            int sum = num1 + num2;
            return Convert.ToString(sum);
        }
        static void Main(string[] args)
        {
            string s = Calculator.WriteText("Hello World!");
            Console.WriteLine(s);

            string n = Calculator.WriteNumber(53,28);
            Console.WriteLine(n);
            Console.ReadLine();
           }
    }
}

A ukoliko je baš BIO plus, onda moraš za string koristiti znake navoda . Javi mi u svakom slučaju na šta je mislio.
 
Ukoliko si kod druge funkcije koristio UMESTO PLUSA , ZAREZ, onda bi to bilo lako, i verujem da je to mislio. Teško da će početniku dati sa plusom, i pitam se da li je to moguće. A evo sa zarezom kako ide:

Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Moj_prvi_projekat
{
    class Calculator
    {
        static string WriteText(string promenljiva)
        {
            return promenljiva;   
        }
        static string WriteNumber(int num1, int num2)
        {
            int sum = num1 + num2;
            return Convert.ToString(sum);
        }
        static void Main(string[] args)
        {
            string s = Calculator.WriteText("Hello World!");
            Console.WriteLine(s);

            string n = Calculator.WriteNumber(53,28);
            Console.WriteLine(n);
            Console.ReadLine();
           }
    }
}

A ukoliko je baš BIO plus, onda moraš za string koristiti znake navoda . Javi mi u svakom slučaju na šta je mislio.

JAVLJAM DEFINITIVNO, DO PONEDELJKA CU ZNATI. ALI JESTE + SIGURNO.
 
Ukoliko si kod druge funkcije koristio UMESTO PLUSA , ZAREZ, onda bi to bilo lako, i verujem da je to mislio. Teško da će početniku dati sa plusom, i pitam se da li je to moguće. A evo sa zarezom kako ide:

Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Moj_prvi_projekat
{
    class Calculator
    {
        static string WriteText(string promenljiva)
        {
            return promenljiva;   
        }
        static string WriteNumber(int num1, int num2)
        {
            int sum = num1 + num2;
            return Convert.ToString(sum);
        }
        static void Main(string[] args)
        {
            string s = Calculator.WriteText("Hello World!");
            Console.WriteLine(s);

            string n = Calculator.WriteNumber(53,28);
            Console.WriteLine(n);
            Console.ReadLine();
           }
    }
}

A ukoliko je baš BIO plus, onda moraš za string koristiti znake navoda . Javi mi u svakom slučaju na šta je mislio.

nije dobro

moram prvo da prepisem ovaj kod u posebnu klasu Program

class Program

{
public static void Main (string[] args)
{

string s = Calculator.WriteText("Hello World ! ");
Console.WriteLine(s);

string n = Calculator.WriteNumber(53+28);
Console.WriteLine(n);

Console.Read();

}
}

i napravim novu klasu Calculator koji ima metode WriteText i WritNumber i implementirati ih da odgovaraju ovi pozivi iz klase Program
 
nije dobro

moram prvo da prepisem ovaj kod u posebnu klasu Program

class Program

{
public static void Main (string[] args)
{

string s = Calculator.WriteText("Hello World ! ");
Console.WriteLine(s);

string n = Calculator.WriteNumber(53+28);
Console.WriteLine(n);

Console.Read();

}
}

i napravim novu klasu Calculator koji ima metode WriteText i WritNumber i implementirati ih da odgovaraju ovi pozivi iz klase Program



I ja sam puno dumo kako bi se moglo rijesiti i takodjer sam mislio da je greska u "+" pitam sam profu preko PM i dobio sam kao neko sugerisanje al nisam nista pametniji nakon te poruke :/

Da li zna iko rjesenje sa "+"?


Ovo je moje rjesenje uzimajuci u obzir da sam koristio "," :

class Calculator
{

public static string WriteText(string input)
{
return input;
}

public static string WriteNumber(int a, int b)
{
return (a + b).ToString();
}
}


I sve radi kako treba :D, al kad ubacim "+" umjesto "," onda mi izbacuje slijedecu gresku "No overload for method 'WriteNumber' takes 1 arguments"
 

Back
Top