Showing posts with label for. Show all posts
Showing posts with label for. Show all posts

Sunday, March 09, 2025

Efficient Code Repetition, Using Loops in C Programming

Loops can be described as key elements in programming, enabling the repetition of certain blocks of code while a condition is met. Most modern programmers couldn't imagine coding without loops. However, if you were to go back to 1972, in the earliest versions of the BASIC language, loops as we know them today did not exist in a structured form, and programmers relied on commands like GOTO or jump to control the program flow, including simulating loops. This was characteristic of the first iterations of BASIC, which was designed in 1964 by John Kemeny and Thomas Kurtz at Dartmouth College, with the goal of being simple for beginners.

However, was the GOTO command alone sufficient? Theoretically, the GOTO command is sufficient to simulate any loop because it is a Turing-complete mechanism – any control structure can be expressed with jumps and conditions. However, in practice, it was inefficient and prone to errors. That's why loops were introduced as a response to criticism, including Edsger Dijkstra's famous 1968 article, 'Go To Statement Considered Harmful,' which pointed out the problems of unstructured code.

In the C programming language, the loops: for, while, and do-while, existed from the very beginning, that is, from its creation in 1972, when Dennis Ritchie developed it at Bell Labs. The C programming language was designed as a successor to the B programming language, which itself was a simplified version of BCPL, and one of the goals was to provide a higher level of program flow control compared to its predecessors, while maintaining closeness to machine code.

Loops have always existed in the C programming language

Loops have always existed in the C programming language

Loops were an integral part of that design, so there was no moment in the history of the standard C programming language where they were absent. Unlike BASIC, which initially relied only on GOTO, the C programming language was designed with loops as a standard tool, inspired by higher-level languages like ALGOL, but adapted for low-level efficiency.

for: For iterations with a known number of repetitions.

while: For conditional loops where the condition is checked before execution.

do-while: For conditional loops where the condition is checked after execution.

In early versions, variable declaration within the for loop header was not allowed; variables had to be declared outside the loop. This changed with the C99 standard, which introduced block scope. With the ANSI C standard in 1989, known as C89/C90, loops were formally defined and have not undergone significant changes in later standards C99, C11, C17, and C23. All three loops have remained consistent in syntax and semantics, showing that Ritchie's design was robust from the very start.

Why Doesn't the C Programming Language Have a 'foreach' Loop, While C++ Has an Alternative?

Saturday, October 12, 2024

Comparison of Loops in PHP, A Practical Guide to Choosing the Best Option

As with all programming languages, loops in PHP are a fundamental programming concept that allows for the execution of the same set of instructions multiple times as long as a certain condition is met. What does that mean? It means that a loop executes the same code within the loop as many times as you tell the loop to do so. Imagine you were late for your computer science class and your teacher tells you to create a program that prints the sentence 'I'm sorry I'm late' 100 times. You could do this task without a loop using a hundred lines of repetitive code or use a loop that would do this task in a snap. Then ask yourself what would happen if the teacher asked you to write a million times that you were sorry. Even that, a single loop would handle with ease.

That's why loops are useful and one of the most important programming rules is to avoid any repetition of code, and loops are perfect for that job. There are several types of loops in PHP, each with specific characteristics and uses. The most common types of loops are described below:

  • while loop - A while loop continues to execute as long as a specified condition evaluates to true. Once the condition becomes false, the loop terminates. This is useful when you don't know beforehand how many times the loop will iterate.  
  • do-while loop - A do-while loop is similar to a while loop, but the difference is that the code inside the loop will always execute at least once, regardless of whether the condition is true or false.
  • for loop - A for loop is typically used when you know in advance how many times you want to execute a block of code. It consists of three parts: initialization, condition, and increment/decrement.  
  • foreach loop - A foreach loop is used to iterate over the elements of an array. Each element in the array is passed through the loop, making it easier to work with arrays.

Students learn loops in the PHP programming language

Students learn loops in the PHP programming language

Loops in PHP provide flexibility and the ability to execute code repeatedly without having to write the same lines multiple times. Understanding the different types of loops is crucial for writing efficient PHP code. Choosing the right loop depends on the specific task and desired behavior. In general, the for loop is used when you know in advance how many times you want a block of code to execute, while while and do-while loops are used when the condition for continuing the loop depends on other factors. The foreach loop is ideal for iterating over collections. PHP loops are a key tool in programming because they allow you to repeat certain operations in an efficient manner. In practice, loops solve numerous real-world problems that often arise in web applications. Here are some concrete examples and problems that PHP loops solve:

  • When working with arrays or databases, it's often necessary to iterate through a large number of entries. Loops allow you to process each entry without repeating the same code. For example, when you have an array of products from a database and you want to display them to users on a webpage.
  • When you need to perform a repetitive task for different users or entries, loops enable automation. For instance, sending an email to each user in a database.
  • Loops are frequently used to dynamically generate HTML code, such as tables, lists, menus, product cards, etc. For example, when you need to create a table with a list of users and their information.
  • Loops are often used to validate and process data from forms, especially when you have multiple inputs that require similar logic. For instance, when you need to validate a set of inputs from a form, such as email addresses, phone numbers, and names.
  • When working with files or databases, you often need to iterate through rows or records. For example, reading a file line by line and displaying the content on a webpage.
  • And so on.

In any case, using loops in PHP programming is common, and it's essential that you can determine and know which loop to use in a given situation. The loops you create for your specific needs will definitely define how good a programmer you are. Let's now move on to the practical part, and in the following sections, you'll see for yourself how easy coding with loops is and how much you can gain from them.

From Theory to PHP Practice: The while Loop in a Practical Example

Thursday, September 17, 2020

Klasa Random, biranje slučajnih brojeva u C# programskom jeziku

Najbolja stvar kod računara je što vas sluša. Kod njega nema ni levo ni desno, nego samo tačno kako ste mu naredili. Njegova akcija je uglavnom predvidljiva i kad ne dobijete od računara ono što očekujete to definitivno znači da ste vi pogrešili, a ne on. Ili nešto nije u redu na dubljem nivou!  Međutim, postoje situacije kad ćete hteti da računar bira jedan od više ponuđenih brojeva ili opcija. Na primer kada programirate igrice, kvizove, testove ili programirate Loto programe koji biraju brojeve umesto vas. Reći računaru da nešto izabere nije baš za njega jednostavan proces. Zato on ima specijalnu klasu Random, koja nasleđuje Object koji predstavlja generator pseudo slučajnih brojeva ili još preciznije Object koji sadrži algoritam koji stvara niz brojeva koji zadovoljavaju određene statističke zahteve za slučajnost. Zahvaljujući tome, biranje slučajnih brojeva u vašem programiranju jeste jednostavno. Vi čak ne morate ni da dodatno uvozite imenski prostor za ovu delatnost jer se Random klasa nalazi u System imenskom prostoru.  

( Random klasa je zadužena za bilo kakvo biranje slučajnih brojeva )

Da stvar bude još jednostavnija, korišćenje naredbe Random u C# programskom jeziku je mnogo jednostavnije nego u C ili C++ programskom jeziku. Metoda Next() je preklopljena i njene druge verzije vam omogućavaju da odredite minimalnu i maksimalnu vrednost opsega. Ona podrazumevano vraća pozitivan integer u opsegu od 0 do maksimalne vrednosti Int32. Ali ako odredite opseg od jednog broja do drugog, možete birati i negativne brojeve. Na primer ako hoćete da birate broj između -100 i 101 onda će te inicijalizovati metodu ovako. 

Random rnd = new Random();

rnd.Next(-100, 101);

I to je sve. I ako imate potrebu da birate više puta, dovoljno je da koristite istu rnd promenjivu čak i sa drugačijim postavkama. Nema potrebe da razmišljate da će svaki put kad izvršite ovaj kod da dobijate isti broj jer podrazumevani konstruktor za klasu Random dodeljuje generatoru slučajnih brojeva početnu vrednost koja je vremenski zavisna, tako da se smanjuje sekvenca biranja istih brojeva. Klasa Random sa njenom metodom Next() je sasvim dovoljna da precizno radite testove, iako su u nekim projektima uključeni razne vrste algoritma da bi slučajni broj bio dodatno naizmeničan broj.

Kako da napravim jednostavan program za izvlačenje Loto brojeva?

Thursday, January 30, 2020

Programerske petlje u C# programskom jeziku


Da li ste ikad čuli za interaktivne iskaze? To vam je u suštini zastrašujuća nova terminologija koja se koristi u najnovijim prevodima informatičke literature koja samo zbunjuje programere. Reč je naravno o programerskim petljama. U jednom od zadnjih postova, učili smo if i switch iskaze odlučivanja sa kojima možete da ispitate neki uslov i onda na primer da prikažete rezultat baziran na ispunjavanju iskaza na ekranu. Na primer ako osoba ima 18 ili više godina onda je osoba punoletna ali ako osoba nema 18 ili više godina onda nije. Otkucate uslov u programu i jednostavno rezultat prikažete na ekranu. Ali šta ako na primer želite da ispišete 1000 puta na ekranu da je osoba punoletna? Znam da nema nikakve logike da to radite, ali čisto radi primera; kako će te to uraditi? Nećete valjda napisati 1000 if iskaza? Ili još jednostavniji primer, kako ćete reči računaru da vam ispiše brojeve od 1 do 1000 na ekranu? Da li će te vi ispisati svaki broj u programu da se ispiše na ekranu? Da li ćete ispisati u programu 1000 redova linijskog koda da bi ste uradili tako jednostavnu stvar? Naravno, da nećete; upravo zato imamo programerske petlje koje bez obzira koliko imate iteracija ili bolje rečeno bez obzira koliko se petlja puta bude izvršavala, vi je pišete samo jednom u par linija koda. Programerske petlje jednostavno se izvršavaju koliko god je neophodno puta sve dok ne izvrše zadati uslov i na taj način izuzetno i precizno rešavaju mnogobrojne zadatke na tako jednostavan način iteracijom.

( Programerske petlje u C# programskom jeziku )

Da stvari budu još bolje, vi imate čak četiri vrste programskih petlji u C# programskom jeziku koje još više olakšavaju rešavanje bilo kojeg zadatka koji zahteva iteraciju. Međutim da bi ste to postigli takođe je potrebno da znate i kada koju od tih četiri programerske petlje da koristite. Prvo da nabrojimo koje su to četiri petlje. Prva programerska petlja je for petlja. Na primer u Visual Basic .Net programskom jeziku ista petlja se zove i for next petlja. Druga je foreach programerska petlja, treća while programerska petlja i četvrta je do while programerska petlja. Možete ih zvati i interaktivni iskaz ili na primer for statement. To je do vas ili do pravila kompanije u kojoj radite. Na primer kad radite u nekoj kompaniji ne možete da prilikom komentarisanja vašeg koda u komentaru da pišete petlja, već statement iako je retkost da neka od kompanija dozvoljava da uopšte pišete komentare na srpskom jeziku. Sve u svemu, želim da razumete da ćete u programiranju često koristiti programerske petlje, ponekad i programerske petlje u drugim programerskim petljama najčešće u radu sa nizovima o kojima ćemo pisati u nekim od sledećih postova. Za sada ćemo se koncentrisati na svaku programersku petlju ponaosob, svaka će pratiti praktični primer i objašnjenje kad je koju najbolje koristiti. Čak iako ste upoznati sa programerskim petljama, pročitajte ovaj post do kraja. Koristiće vam više nego što mislite!

Programerska petlja for

Friday, November 27, 2015

Programerske petlje u C# programskom jeziku


Tokom programiranja često će te imati potrebu za iteracijom; da izvršavate isti blok koda više puta zaredom. Programski jezik C# za tu svrhu ima 4 različite programske petlje kojima se postiže iteracija koda sve do ispunjavanja određenog uslova. Programske petlje u C# programskom jeziku su nasleđene i identične su programskim petljama iz C++ programskog jezika. O programskim petljama u C++ programskom jeziku možete pogledati ovde, jer sve što važi za programske petlje u C++ programskom jeziku, važi i u C# programskom jeziku. Četiri programske petlje su:
  • for
  • foreach
  • while
  • do… while
Programske petlje for i foreach se u osnovi upotrebljavaju kada unapred znate koliko puta hoćete da se izvrši iteracija dok programske petlje while i do while se više koriste kada broj iteracija zavisi od vrednosti relevantnih elemenata u fazi izvršavanja programa.



( Proces rada for petlje u C# programskom jeziku )

Programska petlja for

Programska petlja for se sastoji od tri parametra: inicijalizatora, uslova i iteratora. Sintaksa programske petlje for je sledeća:

for ( inicijalizator; uslov; iterator )
        iskaz (i)


Inicijalizator je u suštini brojač, deklarisana inicijalizovana promenjiva; uslov je izraz koji samo kad vraća true prelazi na sledeću iteraciju i iterator je izraz koji povećava ili umanjuje brojač. Ali najbolje da pogledate sledeći kod programa da bi ste razumeli kako se koristi for petlja u kodu.


Saturday, October 03, 2015

Petlje u C++ programskom jeziku


Često tokom programiranja imate potrebu da kodirate jednu te istu stvar dok se neki određeni uslov ne ispuni. Naredbe if else ili switch izvršavaju uslove samo jedanput. Šta ako trebate neke stvari ponavljati više puta? Neke izazove u programiranju rešavate ponavljanjem delovanja na iste podatke. Npr. Vi možete ispisati 10 linija koda da bi ste ispisali 10 puta „Hello World“ na konzoli, ali šta ako trebate da napišete 1000 puta „Hello World“? Hoćete li pisati 1000 linija koda za ovaj zadatak? Ili šta ako vi ne znate unapred koliko puta treba da ispišete na konzoli „Hello World“? Možda će vam sam smisao pisanja „Hello World“ čak 1000 puta na konzolu zvučati banalno, ali to je čisto da bi ste najlakše razumeli šta je ponavljanje i ono što zahteva u programiranju petlju kad treba da ponavljamo podatke. Inače petlje se koriste toliko često i rešavaju bezbroj izazova u programiranju da je danas je nemoguće zamisliti ozbiljan kod bez petlji. Jednostavno samo matematički omogućavaju mnogo više od jednostavnog izračunavanja. O smanjivanju kodiranja i čitljivosti koda da i ne govorimo.


( Petlja while, objašnjena kao šala )

Međutim nekad u prošlim vremenima i starim programskim jezicima nisu postojale petlje. Umesto njih se koristila naredba goto koja je odrađivala iskaze skokovima na zadatu labelu. Upotrebu naredbe goto u C++ programskom jeziku možete videti u primeru ovde. Sad kad naučite petlje, nećete imati potrebe više da koristite naredbu goto. Iskaz goto ćete viđati u starim programima, često u C ili Basic programskom jeziku, ali za neku sadašnjost se naredba goto apsolutno ne preporučuje. Nepažljiva upotreba goto iskaza brzo zapetlja program da se isti ne može ni čitati. Zato su dobile naziv „Špageta kod“. Ali ono što će te najčešće koristiti u vašim projektima su definitivno sve petlje. Svaka ima svoj razlog kad se koristi.

Šta je for ili for next petlja i kako se koristi?