Místní proměnná nebo parametr s názvem i se nedá deklarovat

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Alesh2020 13. 12. 2021 14:05

Místní proměnná nebo parametr s názvem i se nedá deklarovat v tomto oboru, protože se tento název používá v uzavírajícím místním oboru pro definování místní proměnné nebo parametru.


Kód: Vybrat vše
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace vzor2
{
   class Program
   {
      static void Main(string[] args)
      {

         char c; // znak
         int i; // ordinální (ASCII) hodnota znaku
               // převedeme znak na jeho ASCII hodnotu
         c = 'a';
         i = (int)c;
         Console.WriteLine("Znak {0} jsme převedli na ASCII hodnotu {1}", c, i);
         // Převedeme ASCII hodnotu na znak
         i = 78;
         c = (char)i;
         Console.WriteLine("ASCII hodnotu {1} jsme převedli na znak {0}", c, i);
         Console.ReadKey();
         //začátek druhé fáze
         string s = "gaiusjuliuscaesar";
         Console.WriteLine("Původní zpráva: {0}", s);
         string zprava = "";
         int posun = 1;

         // cyklus projíždějící jednotlivé znaky
         foreach (char cq in s)
         {
            int i = (int)c;
            i += posun;
            // kontrola přetečení
            if (i > (int)'z')
               i -= 26;
            char znak = (char)i;
            zprava += znak;
         }

         // výpis
         Console.WriteLine("Zašifrovaná zpráva: {0}", zprava);
         Console.ReadKey();
      }
   }
}


Zdravím, jinak zjistil jsem, že když člověk klikne na ten error - https://docs.microsoft.com/en-us/dotnet ... 3Dk(CS0136) - tak to na něj nab*ije řešení, ale i tak, moc jsem z něho nezmoudřel. A nejde o to, zda to čtu v originále, nebo v překladu, efekt je stejný. :hm
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 13. 12. 2021 14:07

Tu proměnnou už máš deklarovanou výše. Nemůžeš ji deklarovat dvakrát.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 13. 12. 2021 14:13

Dobře, to jsem se ubouchl při kopírování.
Mám tam "int i = (int)cq;", aby se to vztahovalo jen k tomuto kusu kódu, ale i tak to pořád háže fail. https://postimg.cc/QVWXjXr4
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 13. 12. 2021 14:15

Vždyť ji tam máš pořád dvakrát.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 13. 12. 2021 14:18

Jo vo tohle šlo... já myslel, že to pořád řve kvůli té proměnné "c"...

https://postimg.cc/GHyJPsnF
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 13. 12. 2021 14:20

Tak jasně. Když je v chybové hlášce napsaná proměnná i a taky je podtržená, tak je to kvůli proměnné c.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod meda2016 13. 12. 2021 15:19

@wikan - Nepřiopadáte si, pane kolego, prachsprostě zneužívaný ignorantem, který každým druhým příspěvkem dává najevo nejen svou lenost?
meda2016
Junior

Odeslat příspěvekod Alesh2020 13. 12. 2021 15:52

Já si teda moc hloupej nepřipadam, prostě začínám a tlačí mě čas. :hm

Kód: Vybrat vše
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace vzor2
{
   class Program
   {
      static void Main(string[] args)
      {

         char c; // znak
         int i; // ordinální (ASCII) hodnota znaku
               // převedeme znak na jeho ASCII hodnotu
         c = 'a';
         i = (int)c;
         Console.WriteLine("Znak {0} jsme převedli na ASCII hodnotu {1}", c, i);
         // Převedeme ASCII hodnotu na znak
         i = 78;
         c = (char)i;
         Console.WriteLine("ASCII hodnotu {1} jsme převedli na znak {0}", c, i);
         Console.ReadKey();
         //začátek druhé fáze
         string s = "gaiusjuliuscaesar";
         Console.WriteLine("Původní zpráva: {0}", s);
         string zprava = "";
         int posun = 1;

         // cyklus projíždějící jednotlivé znaky
         foreach (char cq in s)
         {
            int iq = (int)cq;
            iq += posun;
            // kontrola přetečení
            if (iq > (int)'z')
               iq -= 26;
            char znak = (char)i;
            zprava += znak;
         }

         // výpis
         Console.WriteLine("Zašifrovaná zpráva: {0}", zprava);
         Console.ReadKey();
      }
   }
}


Zvláštní, tady mi to má šifrovat text podle principu "Cézarovy šifry" a vyplivne to jen samá "N"...
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 13. 12. 2021 15:57

Kód: Vybrat vše
char znak = (char)i;
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 13. 12. 2021 16:07

Zeptám se úplně jinak. Pokud je to programování jen o schopnosti pracovat s dokumentací - https://docs.microsoft.com/en-us/dotnet ... ew=net-6.0 - a o hlídání si závorek, označení proměnných a podobných hovadinek... nebo i o něčem jiném?
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 13. 12. 2021 16:11

Naprosto o něčem jiném. Je to hlavně o přemýšlení, jak vyřešit určitý problém. Tyhle "hovadinky" jsou už pak jenom způsob, jak ty myšlenky sdělit počítači.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 13. 12. 2021 16:14

Mě nedělá problém si představit - popsat řešení problému slovy - řešení, většina těch mých "chyb" byla jen o tom, že sem je špatně napsal do počítačové řeči...
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 13. 12. 2021 16:22

Tak takový dojem opravdu nemám.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 13. 12. 2021 16:40

Hmmm. Dobrá. Příště popíšu slovy jak si představuji ten problém...
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků