Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2025.
Na konferenci LinuxDays 2025 byl oficiálně představen nový router Turris Omnia NG.
Přímý přenos (YouTube) z konference LinuxDays 2025, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.
V únoru loňského roku Úřad pro ochranu osobních údajů pravomocně uložil společnosti Avast Software pokutu 351 mil. Kč za porušení GDPR. Městský soud v Praze tuto pokutu na úterním jednání zrušil. Potvrdil ale, že společnost Avast porušila zákon, když skrze svůj zdarma dostupný antivirový program sledovala, které weby jeho uživatelé navštěvují, a tyto informace předávala dceřiné společnosti Jumpshot. Úřad pro ochranu osobních údajů
… více »Google Chrome 141 byl prohlášen za stabilní. Nejnovější stabilní verze 141.0.7390.54 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Za nejvážnější z nich (Heap buffer overflow in WebGPU) bylo vyplaceno 25 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
eDoklady mají kvůli vysoké zátěži technické potíže. Ministerstvo vnitra doporučuje vzít si sebou klasický občanský průkaz nebo pas.
Novým prezidentem Free Software Foundation (FSF) se stal Ian Kelling.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za září (YouTube).
Vyšla kniha Počítačové programy a autorské právo. Podle internetových stránek nakladatelství je v knize "Významný prostor věnován otevřenému a svobodnému softwaru, jeho licencím, důsledkům jejich porušení a rizikům „nakažení“ proprietárního kódu režimem open source."
Red Hat řeší bezpečnostní incident, při kterém došlo k neoprávněnému přístupu do GitLab instance používané svým konzultačním týmem.
Řešení dotazu:
#include <stdio.h>
#define do(x) for(x) {
#define while }
void main(void) {
unsigned short i;
do (i=0; i<10; i++)
printf("%i\n", i);
while;
}
int main() { int i = 1; int n = 7; label_start: i = i + 1; if( i > n ) goto label_end; /* do work */ goto label_start; label_end: return 0; }Na vysvetlenou. Nekonecny cyklus (simulujici do-while) je mezi label_start a goto label_start. Podminka na ukonceni pak je if se skokem mimo smycku. Ano. Presne takhle se ve starych jazycich kodovaly tyhle veci. Dneska uz maji oba zminene konstrukce analogicke obou tymum cyklu a je skoda, ze si jich nevazite.
S ohledem na odpovědi mám trochu obavu, co vlastně víte. Takže pro pořádek:
for (INIT; COND; ITER) { BODY; }
lze (za předpokladu, že v těle nepoužijete continue
) ekvivalentně přepsat jako
INIT; while (COND) { BODY; ITER; }
Pomocí do
-while
je to horší, protože ten vždy proběhne aspoň jednou. Takže by bylo potřeba použít nějaký špinavý trik typu
INIT; do { if (!(COND)) break; BODY; ITER; while (true);
a samozřejmě ani tady to nebude fungovat správně, pokud v těle použijete continue
.
Podstatná otázka samozřejmě je, k čemu je to dobré.
for(int i=1;…){ }ale fungoval jako:
int i; for(i=1;…){ }což měnilo platný scope pro 'i'.
{ INIT; while (COND) { BODY; ITER; } }
C EKVIVALENT V FORTRAN 77 DO INTEGER I INTEGER N N=7 DO 10 I=1,N C DO WORK 10 CONTINUE STOP ENDtotéž pomocí IF
C EKVIVALENT V FORTRAN 77 IF INTEGER I INTEGER N 10 IF (N=I) 40,30,20 20 I=I+1 C DO WORK 30 GOTO 50 40 PRINT 'CHYBA I JE VETSI NEZ N' 50 STOP END
C EKVIVALENT V FORTRAN 77 IF INTEGER I INTEGER N 10 IF (N-I) 40,30,20 20 I=I+1 C DO WORK 30 GOTO 50 40 PRINT 'CHYBA I JE VETSI NEZ N' 50 STOP ENDjak už 20 let píšu do if podmínku, tak ty prsty to napsaly automaticky, přitom tohle FORTRANí IF je na číslo.
#define LIMIT 100 int i; //--- FOR LOOP ----------- for(i = 0; i < LIMIT; i++) f(i); //--- WHILE LOOP ----------- i = 0; while(i < LIMIT) { f(i); i++; } //--- DO-WHILE LOOP ----------- i = 0; if(i < LIMIT) { do { f(i); } while(++i < LIMIT); }
Tiskni
Sdílej: