Anonymní profil Aliande – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Aliande – Programujte.comAnonymní profil Aliande – Programujte.com

 

Příspěvky odeslané z IP adresy 188.175.160.–

Aliande
C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167616

#75 vitamin
Nepotřebuju testovat přetečení. Smazat template nahoře... nevím hlásí to pořád nějaké chyby :( jde mi jen o ten úkol a jsem bezradný

Aliande
C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167613

Kde je problém :(

Aliande
C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167611

Výstup má totiž vypadat takto - což bohužel opravdu nevím jak udělat :(

Zadejte dve binarni cisla:
10101 101001
Soucet: 111110

Zadejte dve binarni cisla:
1111100 100
Soucet: 10000000

Zadejte dve binarni cisla:
101 101
Soucet: 1010

Zadejte dve binarni cisla:
11111 111
Soucet: 100110

Zadejte dve binarni cisla:
001 000001
Soucet: 10

Zadejte dve binarni cisla:
10020 1001a0
Nespravny vstup.

Zadejte dve binarni cisla:
abraka1dabra0 1fuj0tajksl1
Nespravny vstup.

Aliande
C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167610

Upravil jsem to na tohle. Bohužel pořád ty chyby... Když zadám písmena, vyhodí to nesmyslnou hodnotu. Když zadám nějaká čísla 565545 apod nepíše to nic... Ale sčítání funguje...Bihužel pořád se bavíme o těch chybách

#include <cstdlib>
#include <iostream>

using namespace std;

bool check(int long number)
{
     return ((number % 10 != 0) && (number % 10) != 1);
}

int main()
{
     long int bin1, bin2;
     int i = 0, zbytek = 0, sum[20];
       
     cout << "Zadejte prvni bin. cislo: ";
     cin >> bin1 >> bin2;
     while( check(bin1) )
     {
          cout << "Nespravny vstup.";
     }

     while( check(bin2) )
     {
           cout << "Nespravny vstup.";
     }
       
     while ((bin1 != 0) || (bin2 != 0))
     {
           sum[i++] = ((bin1 % 10) + (bin2 % 10) + zbytek) % 2;
           zbytek = ((bin1 % 10) + (bin2 % 10) + zbytek) / 2;
           bin1 = bin1/10;
           bin2 = bin2/10;
     }

     if (zbytek != 0) sum[i++] = zbytek;
     --i;
   
     printf("Soucet dvou binarnich cisel je: ");
     while (i >= 0) printf("%d", sum[i--]);
   
     char reakce;
  cin >> reakce;
     return 0;
}

Aliande
C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167607

Napiš to prosím. Já už rezignoval na přemýšlení :(

Aliande
C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167605

Ach bože, nejede to. Když tam zadám například písmena, objeví se nějaký nedobrý ascii součet. Napište mi prosím celý kód, chci se toho jen rychle zbavit už, je to poslední úloha a nad moje síly :( DĚKUJI :(

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
    {
        long int bin1, bin2;
        int i = 0, zbytek = 0, sum[20];

  cout << "Zadejte dve binarni cisla:\n";
        cin >> bin1 >> bin2;

        while ((bin1 != 0) || (bin2 != 0))
        {
              sum[i++] = ((bin1 % 10) + (bin2 % 10) + zbytek) % 2;
              zbytek = ((bin1 % 10) + (bin2 % 10) + zbytek) / 2;
              bin1 = bin1/10;
              bin2 = bin2/10;
        }

        if (zbytek != 0) sum[i++] = zbytek;
        --i;
  if( (bin1 % 10 != 0) && (bin1 % 10) != 1){
cout << "cislo 1 nie je binarne" << endl;
}
if( (bin2 % 10 != 0) && (bin2 % 10) != 1){
cout << "cislo 2 nie je binarne" << endl;
}
  cout << "Soucet: ";
        while (i >= 0) printf("%d", sum[i--]);
   
        char reakce;
  cin >> reakce;
        return 0;
    }

Aliande
C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167602

Ukázal bys mi to prosím na kódu? Já už jsem z toho dneska zmatený, sedím u třech úkolů celý den, tohle je poslední a musím ho do půlnoci odevzdat :( Děkuji ti, dobrá Vílo :)

Aliande
C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167599

Další možné řešení, které ne a ne splňovat kritéria

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
long int bin1, bin2;
int i = 0, zbytek = 0, sum[20], number = 0;

cout << "Zadejte dve binarni cisla:\n";
cin >> bin1 >> bin2;


int dv;
number = bin1;
while(number!=0)
{
dv=number%10;
if(dv>1)
cout << "Neni binarni";
number=number/10;
}
number = bin2;

while(number!=0)
{
dv=number%10;
if(dv>1)
cout << "Neni binarni";
number=number/10;
}

while ((bin1 != 0) || (bin2 != 0))
{
sum[i++] = ((bin1 % 10) + (bin2 % 10) + zbytek) % 2;
zbytek = ((bin1 % 10) + (bin2 % 10) + zbytek) / 2;
bin1 = bin1/10;
bin2 = bin2/10;
}

if (zbytek != 0) sum[i++] = zbytek;
--i;

cout << "Soucet: ";
while (i >= 0) printf("%d", sum[i--]);

char reakce;
cin >> reakce;
return 0;
}

Aliande
C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167594

Ošetření nesprávného výstupu se mi stále nedaří :(

Aliande
C / C++ › Heslo
25. 11. 2012   #167585

#5 vitamin
Ještě jsem to opravil ale přesto heslo splňuje podmínky vždy, když zadám pět znaků :-( Prostě to nefunguje jak má :(

Prosím, poraďte mi někdo

#include <iostream>
#include <string>
using namespace std;
int main ()
{
string heslo;
bool cislo = false;
bool pismena = false;
bool znaky = false;
cin >> heslo;


for(int i = 0; i < 5; ++i)
{
if (heslo[i] >='0' && heslo[i] <='9')cislo = true;
{
  if ((heslo[i] >='a' && heslo[i] <='z') || (heslo[i] >='A' && heslo[i] <='Z'))pismena = true;
  {
   if ((heslo[i] >='!' && heslo[i] <='/') || (heslo[i] >=':' && heslo[i] <='`') || (heslo[i] >='{' && heslo[i] <='~'))znaky = true;
   {
   cout << "Heslo splnuje pozadavky.";
   char reakce;
   cin >> reakce;
   }
   if(znaky == false)/*chyba*/;
{
  cout << "Heslo nesplnuje pozadavky.";
  return 0;
}
  }
  if(pismena == false)/*chyba*/;
{
  cout << "Heslo nesplnuje pozadavky.";
  return 0;
}
}
if(cislo == false)/*chyba*/;
{
  cout << "Heslo nesplnuje pozadavky.";
  return 0;
}
}

char reakce;
cin >> reakce;
return 0;
}

Aliande
C / C++ › Heslo
25. 11. 2012   #167581

#5 vitamin
Napsal jsem to ještě jinak a je teď problém, že pokud nesplním podmínky se znaky, vypíše se 3x hláška heslo nesplňuje požadavky - potřebuju jen jednu hlášku. Ještě mi tam chybí zakomponovat podmínku, aby heslo mělo min 5 znaků. pokud má 5 znaků, program postupuje po řádcích, ale když nemá, zhroutí se... 

#include <iostream>
#include <string>
using namespace std;
int main ()
{
string heslo;
bool cislo = false;
bool pismena = false;
bool znaky = false;
cin >> heslo;


for(int i = 0; i < 5; ++i){
if (heslo[i] >='0' && heslo[i] <='9')cislo = true;
}

if(cislo == false)/*chyba*/;
{
  cout << "Heslo nesplnuje pozadavky.";
}

for(int i = 0; i < 5; ++i){
if ((heslo[i] >='a' && heslo[i] <='z') || (heslo[i] >='A' && heslo[i] <='Z'))pismena = true;
}
if(pismena == false)/*chyba*/;
{
  cout << "Heslo nesplnuje pozadavky.";
}

for(int i = 0; i < 5; ++i){
if ((heslo[0] >='!' && heslo[0] <='/') || (heslo[0] >=':' && heslo[0] <='`') || (heslo[0] >='{' && heslo[0] <='~'))znaky = true;
}
if(znaky == false)/*chyba*/;

{
  cout << "Heslo nesplnuje pozadavky.";
}

char reakce;
cin >> reakce;
return 0;
}

Aliande
C / C++ › Heslo
25. 11. 2012   #167571

#5 vitamin
Udělal jsem to takhle, ovšem tam musím ještě zakomponovat podmínku, že heslo musí mít min 5 znaků. O bool toho moc nevím, pravda nepravda. Jak udělat výpis "Pokud pravda = zobrazí se Heslo splnuje pozadavky", pokud se vrací nepravda = Heslo nesplnuje pozadavky..."?

#include <iostream>
#include <string>
using namespace std;
int main ()
{
string heslo;
bool cislo = false;
bool pismena = false;
bool znaky = false;
cin >> heslo;


for(int i = 0; i < 5; ++i){
if (heslo[i] >='0' && heslo[i] <='9')cislo = true;
}

if(cislo == false)/*chyba*/;

for(int i = 0; i < 5; ++i){
if ((heslo[i] >='a' && heslo[i] <='z') || (heslo[i] >='A' && heslo[i] <='Z'))pismena = true;
}
if(pismena == false)/*chyba*/;

for(int i = 0; i < 5; ++i){
if ((heslo[0] >='!' && heslo[0] <='/') || (heslo[0] >=':' && heslo[0] <='`') || (heslo[0] >='{' && heslo[0] <='~'))znaky = true;
}
if(znaky == false)/*chyba*/;

cout << "Heslo splnuje pozadavky.";

char reakce;
cin >> reakce;
return 0;
}

Aliande
C / C++ › Heslo
25. 11. 2012   #167567

#5 vitamin
Takže dopsat cyklus ke každé podmínce?

Aliande
C / C++ › Heslo
25. 11. 2012   #167563

Nene, takhle to nejde. Jak zaimponuju do testu všechny znaky?

Aliande
C / C++ › Heslo
25. 11. 2012   #167562

#2 vitamin
Takže smazat nulu v hranaté závorce?

Aliande
C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167558

Co tento kód?

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
    {
        long int bin1, bin2;
        int i = 0, zbytek = 0, sum[20];

  cout << "Zadejte dve binarni cisla:\n";
        cin >> bin1 >> bin2;

        while ((bin1 != 0) || (bin2 != 0))
        {
              sum[i++] = ((bin1 % 10) + (bin2 % 10) + zbytek) % 2;
              zbytek = ((bin1 % 10) + (bin2 % 10) + zbytek) / 2;
              bin1 = bin1/10;
              bin2 = bin2/10;
        }

        if (zbytek != 0) sum[i++] = zbytek;
        --i;

  cout << "Soucet: ";
        while (i >= 0) printf("%d", sum[i--]);
   
        char reakce;
  cin >> reakce;
        return 0;
    }

Aliande
C / C++ › Heslo
25. 11. 2012   #167557

Ahoj, mám program, do kterého uživatel musí vložit heslo. To musí obsahovat min pět znaků, obsahovat min jedno malé nebo velké písmeno, musí mít min jednu číslici a ještě jeden znak, který není písmeno ani číslice. Udělal jsem níže uvedený kód, o kterém jsem si myslel, že by měl fungovat. Bohužel asi tápu v podmínkách, jak se tak dívám. No studuju dálkově. Zkuste mi prosím poradit. Když uživatel splní podmínky zapsaného hesla, objeví se hláška "Heslo splňuje podmínky." V opačném případě "Heslo nesplňuje podmínky." Děkuji

#include <iostream>
#include <string>
using namespace std;
int main ()
{
string heslo;
cin >> heslo;
if (heslo.size() >= 5)
{
if ((heslo[0] >='a' && heslo[0] <='z') || (heslo[0] >='A' && heslo[0] <='Z'))
{
if (heslo[0] >='0' && heslo[0] <='9')
{
if ((heslo[0] >='!' && heslo[0] <='/') || (heslo[0] >=':' && heslo[0] <='`') || (heslo[0] >='{' && heslo[0] <='~'))

cout << "Heslo splnuje pozadavky.";
else cout << "Heslo nesplnuje pozadavky.";
}
else cout << "Heslo nesplnuje pozadavky.";
}
else cout << "Heslo nesplnuje pozadavky.";
}
else cout << "Heslo nesplnuje pozadavky.";


char reakce;
cin >> reakce;
return 0;
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý