Cyklus for a vypsání pořadové hodnoty – Příkazový řádek – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Cyklus for a vypsání pořadové hodnoty – Příkazový řádek – Fórum – Programujte.comCyklus for a vypsání pořadové hodnoty – Příkazový řádek – Fórum – Programujte.com

 

antybart0
Návštěvník
9. 11. 2012   #1
-
0
-

Zdravím,

v cmd ve Win7 pořebuju přes cyklus for nechat vypsat čísla(to vím) a před ně pak ještě které to je číslo(např:1.hodnota 1  2.hodnota 3 3.h 5 4.h 7 5.h 9 ...) . to jsem zkoušel že mám proměnou x (set /a x=1)  a potom v části DO(%x%=%x%+1 echo %x% %%i(císlo z foru). díky

Nahlásit jako SPAM
IP: 217.29.8.–
JoDiK
~ Anonymní uživatel
987 příspěvků
10. 11. 2012   #2
-
0
-

Asi budeš muset upřesnit co chceš a co už máš, pokud s tím teda ještě pomoct.

Nahlásit jako SPAM
IP: 88.103.233.–
antybart0
Návštěvník
10. 11. 2012   #3
-
0
-

#2 JoDiK
bude cyklus for 

for /l %%i in (1,2,154) do (echo %%i)

a ještě před vypsáním %%i nechat vypsat pořadové číslo hodnoty(1. hodnota: 1  2.hodnota: 3   3.hodnota: 5.....)

Nahlásit jako SPAM
IP: 217.29.8.–
JoDiK
~ Anonymní uživatel
987 příspěvků
10. 11. 2012   #4
-
0
-

#3 antybart
Odpověz i na prví část otázky: co chceš, případně jaké je zadání - tohle vypadá jak úkol do školy a třeba to děláš nešikovně a půjde to udělat jinak...

Nahlásit jako SPAM
IP: 88.103.233.–
antybart0
Návštěvník
10. 11. 2012   #5
-
0
-

uživatel zadá poč.hodnotu, krok a konec,čísla se vypíšou a před němi ješte pořadová hodnota

@echo off
set /p a=Start:
set /p b=Krok:
set /p c=Konec:
set  /a x=0 
for /l %%i in (%a%,%b%,%c%) do (%x%=%x% +1 echo%x% %%i)  
Nahlásit jako SPAM
IP: 217.29.8.–
JoDiK
~ Anonymní uživatel
987 příspěvků
10. 11. 2012   #6
-
0
-

#5 antybart
To jsem si dal...

Tak jsem konečně nastudoval kus nové syntaxe dávkových příkazů a zdá se, že sice přidali více příkazů do for ale chová se to divně. Jako by to nastřádalo někde v pomocné proměnné a přičetlo až na konec...

ZKus - mělo by to přičítat postupně, ale přičte to až úplně na závěr.

@echo off
set  /a x=1
echo %x%
for /l %%i in (1,1,7) do (echo %%i pred %x%
set /a x=%x+1
echo %%i po %x%)

echo konec %x%

Nahlásit jako SPAM
IP: 88.103.233.–
antybart0
Návštěvník
10. 11. 2012   #7
-
0
-

nefunguje to, pise to  

1 pred 1
1 po 1
2 pred 1
2 po 1

mělo by to fungovat takhle user zadá 1, 3, 18 a tohle by to mělo vyhodit

1.hodnota: 1
2.hodnota: 4
3.hodnota: 7
4.hodnota: 10
5.hodnota: 13
6.hodnota: 16

vím jak to udělatkromě toho "1.hodnota...x.hodnota"

Nahlásit jako SPAM
IP: 217.29.8.–
JoDiK
~ Anonymní uživatel
987 příspěvků
10. 11. 2012   #8
-
0
-

A co jsem psal?

"chová se to divně. Jako by to nastřádalo někde v pomocné proměnné a přičetlo až na konec..."

Musíš si někde nastudovat co s tím...

Nahlásit jako SPAM
IP: 88.103.233.–
antybart0
Návštěvník
10. 11. 2012   #9
-
0
-

#7 antybart
sory, spatně jsem si přečetl

Nahlásit jako SPAM
IP: 217.29.8.–
antybart0
Návštěvník
10. 11. 2012   #10
-
0
-

tak už to mám, přes call a goto

Nahlásit jako SPAM
IP: 217.29.8.–
JoDiK
~ Anonymní uživatel
987 příspěvků
11. 11. 2012   #11
-
0
-

#10 antybart
A můžeš to tady ukázat, ať se ostatní taky poučí?

Nahlásit jako SPAM
IP: 88.103.233.–
antybart0
Návštěvník
11. 11. 2012   #12
-
0
-

   

@echo off
set /p x=Prvni: 
set /p y=Druhe: 
set /p z=Trei:
set   p = 0//pořadí
for /l %%l in (%x%,%y%,%z%) do (
set /a p = p + 1//zvyšujeme pozici
set /a i= %%l//i = l
call :zobraz p,l)//porovnání jakože v C# voláme metodu s paramtery p,l

:zobraz//definice návěstí

set /a p=%1//%1 - znamená první parametr návěstí
set /a l=%2
echo %p%.hodnota: %i%//co chceme vypisovat - pořadí, číslo

snad to chápete :D

Nahlásit jako SPAM
IP: 217.29.8.–
zlz
~ Anonymní uživatel
634 příspěvků
11. 11. 2012   #13
-
0
-

Ty proměnné se nahrazují hodnotami už při parsování příkazu. Pokud je chceš nahrazovat až za běhu, tak můžeš použít delayed expansion.

@echo off

setlocal enabledelayedexpansion

set p=0
for /l %%i in (1,2,10) do (
	set /a p=p+1
	echo !p!. hodnota: %%i
)
1. hodnota: 1
2. hodnota: 3
3. hodnota: 5
4. hodnota: 7
5. hodnota: 9

Nahlásit jako SPAM
IP: 80.188.216.–
JoDiK
~ Anonymní uživatel
987 příspěvků
11. 11. 2012   #14
-
0
-

#13 zlz
No, já si myslel, že tam bude nějaký takový "zádrhel".

Moje "dávkování" skončilo u MS-DOS 6.22, a ty rozšíření ve windows už šly mimo mě...

Nahlásit jako SPAM
IP: 88.103.233.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 17 hostů

Podobná vlákna

ASP.NET: Vypsání hodnoty ze stringu — založil Anonymní uživatel

Poradove cislo selectu — založil 8andrej8

Vypsání — založil Karel

 

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