Programação de computador - Guia rápido
Introdução ao programa de computador
Antes de entrar na programação de computadores, vamos primeiro entender os programas de computador e o que eles fazem.
Um programa de computador é uma sequência de instruções escritas em uma linguagem de programação de computador para executar uma tarefa específica pelo computador.
Os dois termos importantes que usamos na definição acima são -
- Sequência de instruções
- Linguagem de programação de computador
Para entender esses termos, considere uma situação em que alguém lhe pergunta como ir a um KFC próximo. O que exatamente você faz para dizer a ele como ir para o KFC?
Você usará a linguagem humana para dizer o caminho para ir para o KFC, algo como segue -
Primeiro siga em frente, depois de meio quilômetro, vire à esquerda no semáforo vermelho e dirija cerca de um quilômetro e você encontrará o KFC à direita.
Aqui, você usou o idioma inglês para dar várias etapas para chegar ao KFC. Se eles forem seguidos na sequência a seguir, você alcançará KFC -
1. Go straight
2. Drive half kilometer
3. Take left
4. Drive around one kilometer
5. Search for KFC at your right side
Agora, tente mapear a situação com um programa de computador. A sequência de instruções acima é na verdade umHuman Program escrito em English Language, que instrui sobre como chegar ao KFC a partir de um determinado ponto de partida. Essa mesma sequência poderia ter sido dada em espanhol, hindi, árabe ou qualquer outra língua humana, desde que a pessoa que buscava orientação conhecesse qualquer uma dessas línguas.
Agora, vamos voltar e tentar entender um programa de computador, que é uma sequência de instruções escritas em uma linguagem de computador para executar uma tarefa específica pelo computador. A seguir está um programa simples escrito emPython linguagem de programação -
print "Hello, World!"
O programa de computador acima instrui o computador a imprimir "Hello, World!" na tela do computador.
Um programa de computador também é chamado de computer software, que pode variar de duas linhas a milhões de linhas de instruções.
As instruções do programa de computador também são chamadas de código-fonte do programa e computer programming também é chamado program coding.
Um computador sem um programa de computador é apenas uma caixa de despejo; são os programas que tornam os computadores ativos.
Como desenvolvemos tantas linguagens para nos comunicarmos entre nós, os cientistas da computação desenvolveram várias linguagens de programação de computador para fornecer instruções ao computador (isto é, escrever programas de computador). Veremos várias linguagens de programação de computador nos capítulos subsequentes.
Introdução à Programação de Computador
Se você entendeu o que é computer programé, então diremos: o ato de escrever programas de computador é chamado de programação de computador.
Como mencionamos anteriormente, existem centenas de linguagens de programação, que podem ser usadas para escrever programas de computador e a seguir estão algumas delas -
- Java
- C
- C++
- Python
- PHP
- Perl
- Ruby
Usos de programas de computador
Hoje, os programas de computador estão sendo usados em quase todos os campos, família, agricultura, medicina, entretenimento, defesa, comunicação, etc. Listados abaixo estão algumas aplicações de programas de computador -
MS Word, MS Excel, Adobe Photoshop, Internet Explorer, Chrome, etc., são exemplos de programas de computador.
Programas de computador estão sendo usados para desenvolver gráficos e efeitos especiais na produção de filmes.
Programas de computador estão sendo usados para realizar ultrassons, raios-X e outros exames médicos.
Programas de computador estão sendo usados em nossos telefones celulares para SMS, Chat e comunicação de voz.
Programador de computador
Alguém que pode escrever programas de computador ou, em outras palavras, alguém que pode fazer programação de computadores é chamado de Programador de Computador.
Com base na experiência em linguagem de programação de computador, podemos nomear um programador de computador da seguinte forma -
- Programador C
- Programador C ++
- Programador Java
- Programador Python
- Programador PHP
- Programador Perl
- Programador Ruby
Algoritmo
Do ponto de vista da programação, um algorithmé um procedimento passo a passo para resolver qualquer problema. Um algoritmo é um método eficaz expresso como um conjunto finito de instruções bem definidas.
Portanto, um programador de computador lista todas as etapas necessárias para resolver um problema antes de escrever o código real. A seguir está um exemplo simples de um algoritmo para descobrir o maior número de uma determinada lista de números -
1. Get a list of numbers L1, L2, L3....LN
2. Assume L1 is the largest, Largest = L1
3. Take next number Li from the list and do the following
4. If Largest is less than Li
5. Largest = Li
6. If Li is last number from the list then
7. Print value stored in Largest and come out
8. Else repeat same process starting from step 3
O algoritmo acima foi escrito de uma forma bruta para ajudar os iniciantes a entender o conceito. Você encontrará maneiras mais padronizadas de escrever algoritmos de computador à medida que avança para níveis avançados de programação de computador.
Presumimos que você conheça bem o idioma inglês, que é um conhecido Human Interface Language. O inglês tem uma gramática predefinida, que precisa ser seguida para escrever declarações em inglês de maneira correta. Da mesma forma, a maioria das linguagens de interface humana (hindi, inglês, espanhol, francês, etc.) é composta de vários elementos como verbos, substantivos, adjetivos, advérbios, proposições e conjunções, etc.
Semelhante às linguagens de interface humana, as linguagens de programação de computador também são compostas por vários elementos. Iremos conduzi-lo pelos fundamentos desses elementos e torná-lo confortável para usá-los em várias linguagens de programação. Esses elementos básicos incluem -
- Ambiente de Programação
- Sintaxe Básica
- Tipos de dados
- Variables
- Keywords
- Operadores básicos
- Tomando uma decisão
- Loops
- Numbers
- Characters
- Arrays
- Strings
- Functions
- E / S de arquivo
Explicaremos todos esses elementos nos capítulos subsequentes com exemplos usando diferentes linguagens de programação. Primeiro, tentaremos entender o significado de todos esses termos em geral e, em seguida, veremos como esses termos podem ser usados em diferentes linguagens de programação.
Este tutorial foi desenvolvido para lhe dar uma ideia sobre as seguintes linguagens de programação mais populares -
- Programação C
- Programação Java
- Programação Python
Uma parte importante do tutorial foi explicada tomando C como linguagem de programação e, em seguida, mostramos como conceitos semelhantes funcionam em Java e Python. Portanto, após a conclusão deste tutorial, você estará bastante familiarizado com essas linguagens de programação populares.
Embora a Configuração do Ambiente não seja um elemento de nenhuma Linguagem de Programação, é a primeira etapa a ser seguida antes de começar a escrever um programa.
Quando dizemos Configuração do Ambiente, isso simplesmente implica em uma base sobre a qual podemos fazer nossa programação. Assim, precisamos ter a configuração de software necessária, ou seja, a instalação em nosso PC que será usada para escrever programas de computador, compilá-los e executá-los. Por exemplo, se você precisa navegar na Internet, então você precisa da seguinte configuração em sua máquina -
- Uma conexão de Internet funcional para conectar-se à Internet
- Um navegador da Web como Internet Explorer, Chrome, Safari, etc.
Se você for um usuário de PC, reconhecerá a seguinte captura de tela, que tiramos do Internet Explorer durante a navegação em tutorialspoint.com.
Da mesma forma, você precisará da configuração a seguir para começar a programar usando qualquer linguagem de programação.
- Um editor de texto para criar programas de computador.
- Um compilador para compilar os programas em formato binário.
- Um intérprete para executar os programas diretamente.
Caso você não tenha exposição suficiente a computadores, não será possível configurar nenhum desses softwares. Portanto, sugerimos que você obtenha a ajuda de qualquer técnico ao seu redor para configurar o ambiente de programação em sua máquina de onde você pode começar. Mas para você, é importante entender o que são esses itens.
Editor de texto
Um editor de texto é um software usado para escrever programas de computador. Sua máquina Windows deve ter um Bloco de notas, que pode ser usado para digitar programas. Você pode iniciá-lo seguindo estas etapas -
Start Icon → All Programs → Accessories → Notepad → Mouse Click on Notepad
Ele iniciará o Bloco de notas com a seguinte janela -
Você pode usar este software para digitar seu programa de computador e salvá-lo em um arquivo em qualquer local. Você pode baixar e instalar outros bons editores comoNotepad++, que está disponível gratuitamente.
Se você é um usuário Mac, então você terá TextEdit ou você pode instalar algum outro editor comercial como BBEdit começar com.
Compilador?
Você escreve seu programa de computador usando sua linguagem de programação favorita e o salva em um arquivo de texto chamado arquivo de programa.
Agora, vamos tentar obter mais detalhes sobre como o computador entende um programa escrito por você usando uma linguagem de programação. Na verdade, o computador não consegue entender o seu programa fornecido diretamente no formato de texto, por isso precisamos converter este programa em um formato binário, que pode ser entendido pelo computador.
A conversão de programa de texto em arquivo binário é feita por outro software chamado Compiler e este processo de conversão de programa de texto em arquivo de formato binário é chamado de compilação de programa. Finalmente, você pode executar o arquivo binário para realizar a tarefa programada.
Não entraremos em detalhes sobre um compilador e as diferentes fases de compilação.
O diagrama de fluxo a seguir fornece uma ilustração do processo -
Portanto, se você for escrever seu programa em qualquer uma dessas linguagens, que precisa de compilação como C, C ++, Java e Pascal, etc., você precisará instalar seus compiladores antes de iniciar a programação.
Intérprete
Acabamos de discutir sobre compiladores e o processo de compilação. Compiladores são necessários caso você pretenda escrever seu programa em uma linguagem de programação que precise ser compilada em formato binário antes de sua execução.
Existem outras linguagens de programação, como Python, PHP e Perl, que não precisam de nenhuma compilação em formato binário, em vez disso, um interpretador pode ser usado para ler esses programas linha por linha e executá-los diretamente sem qualquer conversão adicional.
Portanto, se você for escrever seus programas em PHP, Python, Perl, Ruby, etc., precisará instalar seus interpretadores antes de iniciar a programação.
Compilação Online
Se você não for capaz de configurar nenhum editor, compilador ou interpretador em sua máquina, tutorialspoint.com oferece um recurso para compilar e executar quase todos os programas online com a facilidade de um único clique.
Portanto, não se preocupe e vamos prosseguir para ter uma experiência emocionante de se tornar um programador de computador em etapas simples e fáceis.
Vamos começar com um pouco de codificação, o que realmente fará de você um programador de computador. Vamos escrever um programa de computador de linha única para escreverHello, World!em sua tela. Vamos ver como ele pode ser escrito em diferentes linguagens de programação.
Programa Hello World em C
Tente o exemplo a seguir usando nossa opção de compilador online disponível em www.compileonline.com .
Para a maioria dos exemplos dados neste tutorial, você encontrará um Try it opção nas seções de código do nosso site no canto superior direito que o levará para o compilador online.
Tente mudar o conteúdo dentro de printf (), ou seja, digite qualquer coisa no lugar de Hello World!e então verifique seu resultado. Ele apenas imprime o que você mantém entre as duas aspas.
#include <stdio.h>
int main() {
/* printf() function to write Hello, World! */
printf( "Hello, World!" );
}
que produz o seguinte resultado -
Hello, World!
Este pequeno programa Hello World nos ajudará a entender vários conceitos básicos relacionados à Programação C.
Ponto de entrada do programa
Por enquanto, apenas esqueça sobre o #include <stdio.h> instrução, mas observe que você deve colocar essa instrução no início de um programa C.
Todo programa C começa com main (), que é chamado de função principal, e é seguido por uma chave esquerda. O resto da instrução do programa é escrito no meio e, finalmente, uma chave direita termina o programa.
A parte de codificação dentro dessas duas chaves é chamada de corpo do programa. A chave esquerda pode estar na mesma linha que main () {ou na próxima linha, como foi mencionado no programa acima.
Funções
Funções são pequenas unidades de programas e são usadas para realizar uma tarefa específica. Por exemplo, o programa acima usa duas funções:main() e printf(). Aqui, a função main () fornece o ponto de entrada para a execução do programa e a outra função printf () está sendo usada para imprimir uma informação na tela do computador.
Você pode escrever suas próprias funções que veremos em um capítulo separado, mas a própria programação C fornece várias funções embutidas como main (), printf (), etc., que podemos usar em nossos programas com base em nossos requisitos.
Algumas das linguagens de programação usam a palavra sub-routine em vez de função, mas sua funcionalidade é mais ou menos a mesma.
Comentários
O programa AC pode ter declarações dentro de /*.....*/. Essas declarações são chamadas de comentários e esses comentários são usados para tornar os programas amigáveis e fáceis de entender. O bom dos comentários é que eles são completamente ignorados pelos compiladores e intérpretes. Portanto, você pode usar qualquer idioma para escrever seus comentários.
Espaços em branco
Quando escrevemos um programa usando qualquer linguagem de programação, usamos vários caracteres imprimíveis para preparar instruções de programação. Esses caracteres imprimíveis sãoa, b, c,......z, A, B, C,.....Z, 1, 2, 3,...... 0, !, @, #, $, %, ^, &, *, (, ), -, _, +, =, \, |, {, }, [, ], :, ;, <, >, ?, /, \, ~. `. ", '. Espero que não esteja faltando nenhum caractere imprimível de seu teclado.
Além desses caracteres, existem alguns caracteres que usamos com muita frequência, mas eles são invisíveis em seu programa e esses caracteres são espaços, tabulações (\ t), novas linhas (\ n). Esses personagens são chamadoswhitespaces.
Esses três importantes caracteres de espaço em branco são comuns em todas as linguagens de programação e permanecem invisíveis em seu documento de texto -
Espaço em branco | Explicação | Representação |
---|---|---|
Nova linha | Para criar uma nova linha | \ n |
Aba | Para criar uma guia. | \ t |
Espaço | Para criar um espaço. | espaço vazio |
Uma linha contendo apenas espaços em branco, possivelmente com um comentário, é conhecida como uma linha em branco e um compilador C a ignora totalmente. Espaço em branco é o termo usado em C para descrever espaços em branco, tabulações, caracteres de nova linha e comentários. Então você pode escreverprintf("Hello, World!" );como mostrado abaixo. Aqui estão todos os espaços criados em torno de "Hello, World!" são inúteis e o compilador irá ignorá-los no momento da compilação.
#include <stdio.h>
int main() {
/* printf() function to write Hello, World! */
printf( "Hello, World!" );
}
que produz o seguinte resultado -
Hello, World!
Se tornarmos todos esses caracteres de espaço em branco visíveis, o programa acima será parecido com este e você não será capaz de compilá-lo -
#include <stdio.h>\n
\n
int main()\n
{
\n
\t/* printf() function to write Hello, World! */
\n
\tprintf(\t"Hello, World!"\t);\n
\n
}\n
Ponto e vírgula
Cada instrução individual em um Programa C deve terminar com um ponto e vírgula (;), por exemplo, se você deseja escrever "Hello, World!" duas vezes, então será escrito da seguinte forma -
#include <stdio.h>
int main() {
/* printf() function to write Hello, World! */
printf( "Hello, World!\n" );
printf( "Hello, World!" );
}
Este programa produzirá o seguinte resultado -
Hello, World!
Hello, World!
Aqui, estamos usando um caractere de nova linha \nna primeira função printf () para criar uma nova linha. Vamos ver o que acontece se não usarmos esse caractere de nova linha -
#include <stdio.h>
int main() {
/* printf() function to write Hello, World! */
printf( "Hello, World!" );
printf( "Hello, World!" );
}
Este programa produzirá o seguinte resultado -
Hello, World! Hello, World!
Aprenderemos identificadores e palavras-chave nos próximos capítulos.
Explicação do programa
Vamos entender como funciona o programa C acima. Em primeiro lugar, o programa acima é convertido em um formato binário usando o compilador C. Então, vamos colocar este código no arquivo test.c e compilá-lo da seguinte maneira -
$gcc test.c -o demo
Se houver algum erro gramatical (erros de sintaxe em terminologias de computador), então o corrigimos antes de convertê-lo para o formato binário. Se tudo correr bem, então ele produz um arquivo binário chamadodemo. Finalmente, executamos a demonstração binária produzida da seguinte forma -
$./demo
que produz o seguinte resultado -
Hello, World!
Aqui, quando executamos o binário a.outarquivo, o computador entra no programa começando com main () e encontra uma instrução printf (). Observe que a linha dentro de /*....*/ é um comentário e é filtrada no momento da compilação. Assim, a função printf () instrui o computador a imprimir a linha dada na tela do computador. Finalmente, ele encontra uma chave direita que indica o fim da função main () e sai do programa.
Erro de sintaxe
Se você não seguir as regras definidas pela linguagem de programação, no momento da compilação, você obterá erros de sintaxe e o programa não será compilado. Do ponto de vista da sintaxe, até mesmo um único ponto ou vírgula ou um único ponto-e-vírgula são importantes e você deve cuidar dessa pequena sintaxe também. No exemplo a seguir, pulamos um ponto e vírgula, vamos tentar compilar o programa -
#include <stdio.h>
main() {
printf("Hello, World!")
}
Este programa produzirá o seguinte resultado -
main.c: In function 'main':
main.c:7:1: error: expected ';' before '}' token
}
^
Portanto, o ponto principal é que, se você não estiver seguindo a sintaxe adequada definida pela linguagem de programação em seu programa, obterá erros de sintaxe. Antes de tentar outra compilação, você precisará corrigi-los e prosseguir.
Programa Hello World em Java
A seguir está o programa equivalente escrito em Java. Este programa também produzirá o mesmo resultadoHello, World!.
public class HelloWorld {
public static void main(String []args) {
/* println() function to write Hello, World! */
System.out.println("Hello, World!");
}
}
que produz o seguinte resultado -
Hello, World!
Programa Hello World em Python
A seguir está o programa equivalente escrito em Python. Este programa também produzirá o mesmo resultadoHello, World!.
# print function to write Hello, World! */
print "Hello, World!"
que produz o seguinte resultado -
Hello, World!
Espero que você tenha notado que, para exemplos em C e Java, primeiro estamos compilando os programas e, em seguida, executando os binários produzidos, mas no programa Python, estamos executando-o diretamente. Como explicamos no capítulo anterior, Python é uma linguagem interpretada e não precisa de uma etapa intermediária chamada compilação.
Python não requer ponto-e-vírgula (;) para encerrar uma instrução, em vez disso, uma nova linha sempre significa o encerramento da instrução.
Vamos discutir sobre um conceito muito simples, mas muito importante disponível em quase todas as linguagens de programação que é chamado data types. Como o próprio nome indica, um tipo de dados representa um tipo de dados que você pode processar usando seu programa de computador. Pode ser numérico, alfanumérico, decimal, etc.
Vamos deixar a programação de computador de lado por um tempo e dar um exemplo fácil de adicionar dois números inteiros 10 e 20, o que pode ser feito simplesmente da seguinte maneira -
10 + 20
Vamos pegar outro problema em que queremos adicionar dois números decimais 10,50 e 20,50, que serão escritos da seguinte maneira -
10.50 + 20.50
Os dois exemplos são diretos. Agora, vamos dar outro exemplo em que queremos registrar as informações do aluno em um caderno. Aqui, gostaríamos de registrar as seguintes informações -
Name:
Class:
Section:
Age:
Sex:
Agora, vamos colocar um registro do aluno de acordo com o requisito determinado -
Name: Zara Ali
Class: 6th
Section: J
Age: 13
Sex: F
O primeiro exemplo lidou com números inteiros, o segundo exemplo adicionou dois números decimais, enquanto o terceiro exemplo está lidando com uma combinação de dados diferentes. Vamos colocar da seguinte forma -
O nome do aluno "Zara Ali" é uma sequência de caracteres que também é chamada de string.
A classe do aluno "6º" foi representada por uma mistura de números inteiros e uma seqüência de dois caracteres. Essa mistura é chamada de alfanumérica.
A seção do aluno foi representada por um único caractere que é 'J'.
A idade do aluno foi representada por um número inteiro que é 13.
O sexo do aluno foi representado por um único caractere, 'F'.
Dessa forma, percebemos que em nosso dia a dia lidamos com diferentes tipos de dados como strings, caracteres, números inteiros (inteiros) e números decimais (números em ponto flutuante).
Da mesma forma, quando escrevemos um programa de computador para processar diferentes tipos de dados, precisamos especificar seu tipo claramente; caso contrário, o computador não entenderá como diferentes operações podem ser realizadas nesses dados fornecidos. Diferentes linguagens de programação usam diferentes palavras-chave para especificar diferentes tipos de dados. Por exemplo, as linguagens de programação C e Java usamint para especificar dados inteiros, enquanto char especifica um tipo de dados de caractere.
Os capítulos subsequentes mostrarão como usar diferentes tipos de dados em diferentes situações. Por enquanto, vamos verificar os tipos de dados importantes disponíveis em C, Java e Python e as palavras-chave que usaremos para especificar esses tipos de dados.
Tipos de dados C e Java
C e Java suportam quase o mesmo conjunto de tipos de dados, embora Java suporte tipos de dados adicionais. Por enquanto, estamos pegando alguns tipos de dados comuns suportados por ambas as linguagens de programação -
Tipo | Palavra-chave | Faixa de valor que pode ser representada por este tipo de dados |
---|---|---|
Personagem | Caracteres | -128 a 127 ou 0 a 255 |
Número | int | -32.768 a 32.767 ou -2.147.483.648 a 2.147.483.647 |
Número pequeno | baixo | -32.768 a 32.767 |
Número Longo | grandes | -2.147.483.648 a 2.147.483.647 |
Número decimal | flutuador | 1,2E-38 a 3,4E + 38 até 6 casas decimais |
Esses tipos de dados são chamados de tipos de dados primitivos e você pode usar esses tipos de dados para construir tipos de dados mais complexos, que são chamados de tipos de dados definidos pelo usuário, por exemplo, uma string será uma sequência de caracteres.
Tipos de dados Python
Python tem cinco tipos de dados padrão, mas essa linguagem de programação não faz uso de nenhuma palavra-chave para especificar um tipo de dados particular, em vez disso, Python é inteligente o suficiente para entender um determinado tipo de dados automaticamente.
- Numbers
- String
- List
- Tuple
- Dictionary
Aqui, Número especifica todos os tipos de números, incluindo números decimais e string representa uma sequência de caracteres com um comprimento de 1 ou mais caracteres. Por enquanto, vamos prosseguir com esses dois tipos de dados e ignorar Lista, Tupla e Dicionário, que são tipos de dados avançados em Python.
Variáveis são os nomes que você dá aos locais da memória do computador que são usados para armazenar valores em um programa de computador.
Por exemplo, suponha que você deseja armazenar dois valores 10 e 20 em seu programa e, em um estágio posterior, deseja usar esses dois valores. Vamos ver como você vai fazer. Aqui estão as três etapas simples a seguir -
- Crie variáveis com nomes apropriados.
- Armazene seus valores nessas duas variáveis.
- Recupere e use os valores armazenados das variáveis.
Criação de variáveis
A criação de variáveis também é chamada declaring variablesem programação C. Linguagens de programação diferentes têm maneiras diferentes de criar variáveis dentro de um programa. Por exemplo, a programação C tem a seguinte maneira simples de criar variáveis -
#include <stdio.h>
int main() {
int a;
int b;
}
O programa acima cria duas variáveis para reservar dois locais de memória com nomes a e b. Criamos essas variáveis usandoint palavra-chave para especificar a variável data typeo que significa que queremos armazenar valores inteiros nessas duas variáveis. Da mesma forma, você pode criar variáveis para armazenarlong, float, charou qualquer outro tipo de dados. Por exemplo -
/* variable to store long value */
long a;
/* variable to store float value */
float b;
Você pode criar variáveis de tipo semelhante, colocando-as em uma única linha, mas separadas por vírgula da seguinte forma -
#include <stdio.h>
int main() {
int a, b;
}
Listados abaixo estão os principais pontos sobre as variáveis que você precisa ter em mente -
Um nome de variável pode conter um único tipo de valor. Por exemplo, se variávela foi definido int digite, então ele pode armazenar apenas inteiros.
A linguagem de programação C requer a criação de uma variável, ou seja, a declaração antes de seu uso em seu programa. Você não pode usar um nome de variável em seu programa sem criá-lo, embora uma linguagem de programação como Python permita que você use um nome de variável sem criá-lo.
Você pode usar um nome de variável apenas uma vez dentro de seu programa. Por exemplo, se uma variávela foi definido para armazenar um valor inteiro, então você não pode definir a novamente para armazenar qualquer outro tipo de valor.
Existem linguagens de programação como Python, PHP, Perl, etc., que não querem que você especifique o tipo de dados no momento de criar variáveis. Portanto, você pode armazenar inteiro, flutuante ou longo sem especificar seu tipo de dados.
Você pode dar qualquer nome a uma variável como age, sex, salary, year1990ou qualquer outra coisa que você gostaria de dar, mas a maioria das linguagens de programação permitem usar apenas caracteres limitados em seus nomes de variáveis. Por enquanto, sugeriremos usar apenasa....z, A....Z, 0....9 em seus nomes de variáveis e comece seus nomes usando apenas alfabetos em vez de dígitos.
Quase nenhuma das linguagens de programação permite iniciar seus nomes de variáveis com um dígito, então 1990year não será um nome de variável válido, enquanto year1990 ou ye1990ar são nomes de variáveis válidos.
Cada linguagem de programação fornece mais regras relacionadas a variáveis e você as aprenderá quando for em mais detalhes sobre essa linguagem de programação.
Armazenar valores em variáveis
Você viu como criamos variáveis na seção anterior. Agora, vamos armazenar alguns valores nessas variáveis -
#include <stdio.h>
int main() {
int a;
int b;
a = 10;
b = 20;
}
O programa acima tem duas instruções adicionais onde estamos armazenando 10 na variável a e 20 está sendo armazenado na variável b. Quase todas as linguagens de programação têm uma maneira semelhante de armazenar valores na variável onde mantemos o nome da variável no lado esquerdo de um sinal de igual = e qualquer valor que queremos armazenar na variável, mantemos esse valor no lado direito.
Agora, completamos duas etapas, primeiro criamos duas variáveis e, em seguida, armazenamos os valores necessários nessas variáveis. Agora variávela tem valor 10 e variável b tem o valor 20. Em outras palavras, podemos dizer, quando o programa acima é executado, a localização da memória chamada a conterá 10 e a localização da memória b terá 20.
Acesse valores armazenados em variáveis
Se não usarmos os valores armazenados nas variáveis, não há sentido em criar variáveis e armazenar valores nelas. Sabemos que o programa acima tem duas variáveisa e be eles armazenam os valores 10 e 20, respectivamente. Então, vamos tentar imprimir os valores armazenados nessas duas variáveis. A seguir está um programa C, que imprime os valores armazenados em suas variáveis -
#include <stdio.h>
int main() {
int a;
int b;
a = 10;
b = 20;
printf( "Value of a = %d\n", a );
printf( "Value of b = %d\n", b );
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Value of a = 10
Value of b = 20
Você deve ter visto printf()no capítulo anterior, onde a usamos para imprimir "Hello, World!". Desta vez, estamos usando para imprimir os valores das variáveis. Estamos fazendo uso de%d, que será substituído pelos valores da variável fornecida nas instruções printf (). Podemos imprimir ambos os valores usando uma única instrução printf () da seguinte forma -
#include <stdio.h>
int main() {
int a;
int b;
a = 10;
b = 20;
printf( "Value of a = %d and value of b = %d\n", a, b );
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Value of a = 10 and value of b = 20
Se você quiser usar float variável na programação C, então você terá que usar %f ao invés de %d, e se você quiser imprimir um valor de caractere, você terá que usar %c. Da mesma forma, diferentes tipos de dados podem ser impressos usando diferentes% e caracteres.
Variáveis em Java
A seguir está o programa equivalente escrito na linguagem de programação Java. Este programa irá criar duas variáveisa e b e muito semelhante à programação C, ele atribuirá 10 e 20 a essas variáveis e, finalmente, imprimirá os valores das duas variáveis de duas maneiras -
public class DemoJava {
public static void main(String []args) {
int a;
int b;
a = 10;
b = 20;
System.out.println("Value of a = " + a);
System.out.println("Value of b = " + b);
System.out.println("Value of a = " + a + " and value of b = " + b);
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Value of a = 10
Value of b = 20
Value of a = 10 and value of b = 20
Variáveis em Python
A seguir está o programa equivalente escrito em Python. Este programa irá criar duas variáveisa e b e ao mesmo tempo, atribua 10 e 20 nessas variáveis.
Python não quer que você especifique o tipo de dados no momento da criação da variável e não há necessidade de criar variáveis com antecedência.
a = 10
b = 20
print "Value of a = ", a
print "Value of b = ", b
print "Value of a = ", a, " and value of b = ", b
Quando o programa acima é executado, ele produz o seguinte resultado -
Value of a = 10
Value of b = 20
Value of a = 10 and value of b = 20
Você pode usar a seguinte sintaxe na programação C e Java para declarar variáveis e atribuir valores ao mesmo tempo -
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
printf( "Value of a = %d and value of b = %d\n", a, b );
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Value of a = 10 and value of b = 20
Até agora, cobrimos dois conceitos importantes chamados variáveis e seus tipos de dados. Discutimos como usarint, long, e floatpara especificar diferentes tipos de dados. Também aprendemos como nomear as variáveis para armazenar valores diferentes.
Embora este capítulo não seja necessário separadamente porque as palavras-chave reservadas fazem parte da sintaxe de programação básica, nós o mantivemos separado para explicá-lo logo após os tipos de dados e variáveis para torná-lo fácil de entender.
Como int, long e float, existem muitas outras palavras-chave suportadas pela linguagem de programação C que usaremos para finalidades diferentes. Diferentes linguagens de programação fornecem diferentes conjuntos de palavras-chave reservadas, mas há uma regra comum e importante em todas as linguagens de programação que não podemos usar uma palavra-chave reservada para nomear nossas variáveis, o que significa que não podemos nomear nossa variável comoint ou float em vez disso, essas palavras-chave só podem ser usadas para especificar um tipo de dados variável.
Por exemplo, se você tentar usar qualquer palavra-chave reservada para o propósito de nome de variável, obterá um erro de sintaxe.
#include <stdio.h>
int main() {
int float;
float = 10;
printf( "Value of float = %d\n", float);
}
Quando você compila o programa acima, ele produz o seguinte erro -
main.c: In function 'main':
main.c:5:8: error: two or more data types in declaration specifiers
int float;
......
Vamos agora dar um nome apropriado para nossa variável inteira, então o programa acima deve ser compilado e executado com sucesso -
#include <stdio.h>
int main() {
int count;
count = 10;
printf( "Value of count = %d\n", count);
}
Palavras-chave reservadas de programação C
Aqui está uma tabela com quase todas as palavras-chave suportadas pela linguagem de programação C -
auto | outro | grandes | interruptor |
pausa | enum | registro | typedef |
caso | externo | Retorna | União |
Caracteres | flutuador | baixo | não assinado |
const | para | assinado | vazio |
continuar | vamos para | tamanho de | volátil |
padrão | E se | estático | enquanto |
Faz | int | estrutura | _Packed |
em dobro |
Palavras-chave reservadas para programação Java
Aqui está uma tabela com quase todas as palavras-chave suportadas pela linguagem de programação Java -
abstrato | afirmar | boleano | pausa |
byte | caso | pegar | Caracteres |
classe | const | continuar | padrão |
Faz | em dobro | outro | enum |
estende | final | finalmente | flutuador |
para | vamos para | E se | implementos |
importar | instancia de | int | interface |
grandes | nativo | Novo | pacote |
privado | protegido | público | Retorna |
baixo | estático | strictfp | super |
interruptor | sincronizado | esta | lançar |
lança | transitório | experimentar | vazio |
volátil | enquanto |
Palavras-chave reservadas para programação Python
Aqui está uma tabela com quase todas as palavras-chave suportadas pela linguagem de programação Python -
e | exec | não |
afirmar | finalmente | ou |
pausa | para | passar |
classe | de | impressão |
continuar | global | levantar |
def | E se | Retorna |
del | importar | experimentar |
elif | dentro | enquanto |
outro | é | com |
exceto | lambda | produção |
Sabemos que você não pode memorizar todas essas palavras-chave, mas as listamos para seu propósito de referência e para explicar o conceito de reserved keywords. Portanto, apenas tome cuidado ao dar um nome à sua variável, você não deve usar nenhuma palavra-chave reservada para essa linguagem de programação.
Um operador em uma linguagem de programação é um símbolo que diz ao compilador ou intérprete para realizar uma operação matemática, relacional ou lógica específica e produzir o resultado final. Este capítulo irá explicar o conceito deoperators e o levará através dos importantes operadores aritméticos e relacionais disponíveis em C, Java e Python.
Operadores aritméticos
Os programas de computador são amplamente usados para cálculos matemáticos. Podemos escrever um programa de computador que pode fazer cálculos simples como somar dois números (2 + 3) e também podemos escrever um programa, que pode resolver uma equação complexa como P (x) = x 4 + 7x 3 - 5x + 9. Se você foi mesmo um aluno ruim, deve estar ciente de que na primeira expressão 2 e 3 são operandos e + é um operador. Conceitos semelhantes existem em programação de computadores.
Dê uma olhada nos dois exemplos a seguir -
2 + 3
P(x) = x4 + 7x3 - 5x + 9.
Essas duas declarações são chamadas de expressões aritméticas em uma linguagem de programação e plus, minususados nessas expressões são chamados de operadores aritméticos e os valores usados nessas expressões como 2, 3 e x, etc., são chamados de operandos. Em sua forma mais simples, tais expressões produzem resultados numéricos.
Da mesma forma, uma linguagem de programação fornece vários operadores aritméticos. A tabela a seguir lista alguns dos importantes operadores aritméticos disponíveis na linguagem de programação C. Suponha que a variável A tenha 10 e a variável B tenha 20, então -
Operador | Descrição | Exemplo |
---|---|---|
+ | Adiciona dois operandos | A + B dará 30 |
- | Subtrai o segundo operando do primeiro | A - B dará -10 |
* | Multiplica ambos os operandos | A * B dará 200 |
/ | Divide numerador por de-numerador | B / A dará 2 |
% | Isso dá o resto de uma divisão inteira | B% A dará 0 |
A seguir está um exemplo simples de Programação C para entender os operadores matemáticos acima -
#include <stdio.h>
int main() {
int a, b, c;
a = 10;
b = 20;
c = a + b;
printf( "Value of c = %d\n", c);
c = a - b;
printf( "Value of c = %d\n", c);
c = a * b;
printf( "Value of c = %d\n", c);
c = b / a;
printf( "Value of c = %d\n", c);
c = b % a;
printf( "Value of c = %d\n", c);
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 2
Value of c = 0
Operadores Relacionais
Considere uma situação em que criamos duas variáveis e atribuímos a elas alguns valores da seguinte forma -
A = 20
B = 10
Aqui, é óbvio que a variável A é maior do que B em valores. Portanto, precisamos da ajuda de alguns símbolos para escrever tais expressões que são chamadas de expressões relacionais. Se usarmos a linguagem de programação C, ela será escrita da seguinte maneira -
(A > B)
Aqui, usamos um símbolo> e é chamado de operador relacional e, em sua forma mais simples, eles produzem resultados booleanos, o que significa que o resultado será verdadeiro ou falso. Da mesma forma, uma linguagem de programação fornece vários operadores relacionais. A tabela a seguir lista alguns dos operadores relacionais importantes disponíveis na linguagem de programação C. Assumir variávelA contém 10 e variável B contém 20, então -
Operador | Descrição | Exemplo |
---|---|---|
== | Verifica se os valores dos dois operandos são iguais ou não, se sim a condição torna-se verdadeira. | (A == B) não é verdade. |
! = | Verifica se os valores de dois operandos são iguais ou não, se os valores não são iguais, a condição se torna verdadeira. | (A! = B) é verdade. |
> | Verifica se o valor do operando esquerdo é maior que o valor do operando direito, se sim então a condição torna-se verdadeira. | (A> B) não é verdade. |
< | Verifica se o valor do operando esquerdo é menor que o valor do operando direito; se sim, a condição torna-se verdadeira. | (A <B) é verdade. |
> = | Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se sim a condição torna-se verdadeira. | (A> = B) não é verdade. |
<= | Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito; em caso afirmativo, a condição torna-se verdadeira. | (A <= B) é verdadeiro. |
Aqui, mostraremos um exemplo de Programação C que faz uso de if conditional statement. Embora esta declaração seja discutida mais tarde em um capítulo separado, mas, em resumo, usamosif statement para verificar uma condição e se a condição for verdadeira, o corpo de if statement é executado, caso contrário, o corpo de if statement é ignorado.
#include <stdio.h>
int main() {
int a, b;
a = 10;
b = 20;
/* Here we check whether a is equal to 10 or not */
if( a == 10 ) {
/* if a is equal to 10 then this body will be executed */
printf( "a is equal to 10\n");
}
/* Here we check whether b is equal to 10 or not */
if( b == 10 ) {
/* if b is equal to 10 then this body will be executed */
printf( "b is equal to 10\n");
}
/* Here we check if a is less b than or not */
if( a < b ) {
/* if a is less than b then this body will be executed */
printf( "a is less than b\n");
}
/* Here we check whether a and b are not equal */
if( a != b ) {
/* if a is not equal to b then this body will be executed */
printf( "a is not equal to b\n");
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
a is equal to 10
a is less than b
a is not equal to b
Operadores lógicos
Os operadores lógicos são muito importantes em qualquer linguagem de programação e nos ajudam a tomar decisões com base em certas condições. Suponha que desejamos combinar o resultado de duas condições, então os operadores lógicos AND e OR nos ajudam a produzir o resultado final.
A tabela a seguir mostra todos os operadores lógicos suportados pela linguagem C. Assumir variávelA detém 1 e variável B segura 0, então -
Operador | Descrição | Exemplo |
---|---|---|
&& | Operador lógico chamado AND. Se ambos os operandos forem diferentes de zero, a condição se torna verdadeira. | (A && B) é falso. |
|| | Operador lógico ou chamado. Se qualquer um dos dois operandos for diferente de zero, a condição se torna verdadeira. | (A || B) é verdade. |
! | Operador lógico chamado NOT. Use para reverter o estado lógico de seu operando. Se uma condição for verdadeira, o operador NOT lógico tornará falso. | ! (A && B) é verdade. |
Tente o exemplo a seguir para entender todos os operadores lógicos disponíveis na linguagem de programação C -
#include <stdio.h>
int main() {
int a = 1;
int b = 0;
if ( a && b ) {
printf("This will never print because condition is false\n" );
}
if ( a || b ) {
printf("This will be printed print because condition is true\n" );
}
if ( !(a && b) ) {
printf("This will be printed print because condition is true\n" );
}
}
Quando você compila e executa o programa acima, ele produz o seguinte resultado -
This will be printed print because condition is true
This will be printed print because condition is true
Operadores em Java
A seguir está o programa equivalente escrito em Java. A programação C e Java fornecem um conjunto quase idêntico de operadores e instruções condicionais. Este programa irá criar duas variáveisa e b, muito semelhante à programação C, então atribuímos 10 e 20 a essas variáveis e, finalmente, usaremos diferentes operadores aritméticos e relacionais -
Você pode tentar executar o programa a seguir para ver a saída, que deve ser idêntica ao resultado gerado pelo exemplo acima.
public class DemoJava {
public static void main(String []args) {
int a, b, c;
a = 10;
b = 20;
c = a + b;
System.out.println("Value of c = " + c );
c = a - b;
System.out.println("Value of c = " + c );
c = a * b;
System.out.println("Value of c = " + c );
c = b / a;
System.out.println("Value of c = " + c );
c = b % a;
System.out.println("Value of c = " + c );
if( a == 10 ) {
System.out.println("a is equal to 10" );
}
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 2
Value of c = 0
a is equal to 10
Operadores em Python
A seguir está o programa equivalente escrito em Python. Este programa irá criar duas variáveisa e be ao mesmo tempo, atribua 10 e 20 nessas variáveis. Felizmente, a programação C e as linguagens de programação Python fornecem um conjunto quase idêntico de operadores. Este programa irá criar duas variáveisa e b, muito semelhante à programação C, então atribuímos 10 e 20 a essas variáveis e, por fim, usaremos diferentes operadores aritméticos e relacionais.
Você pode tentar executar o programa a seguir para ver a saída, que deve ser idêntica ao resultado gerado pelo exemplo acima.
a = 10
b = 20
c = a + b
print "Value of c = ", c
c = a - b
print "Value of c = ", c
c = a * b
print "Value of c = ", c
c = a / b
print "Value of c = ", c
c = a % b
print "Value of c = ", c
if( a == 10 ):
print "a is equal to 10"
Quando o programa acima é executado, ele produz o seguinte resultado -
Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 0
Value of c = 10
a is equal to 10
A tomada de decisão é crítica para a programação de computadores. Haverá muitas situações em que você terá duas ou mais opções e terá que selecionar uma opção com base nas condições fornecidas. Por exemplo, queremos imprimir um comentário sobre um aluno com base em suas notas garantidas. A seguir está a situação -
Assume given marks are x for a student:
If given marks are more than 95, then
Student is brilliant
If given marks are less than 30, then
Student is poor
If given marks are less than 95 and more than 30, then
Student is average
Agora, a questão é como escrever um código de programação para lidar com tais situações. Quase todas as linguagens de programação fornecem instruções condicionais que funcionam com base no seguinte diagrama de fluxo -
Vamos escrever um programa C com a ajuda de if conditional statements para converter a situação dada acima em um código de programação -
#include <stdio.h>
int main() {
int x = 45;
if( x > 95) {
printf( "Student is brilliant\n");
}
if( x < 30) {
printf( "Student is poor\n");
}
if( x < 95 && x > 30 ) {
printf( "Student is average\n");
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Student is average
O programa acima usa if conditional statements. Aqui o primeiroif statementverifica se a condição fornecida, isto é, a variável x é maior que 95 ou não, e se ela acha que a condição é verdadeira, o corpo condicional é inserido para executar as declarações fornecidas. Aqui temos apenas uma instrução printf () para imprimir um comentário sobre o aluno.
Da mesma forma, o segundo if statementtrabalho. Finalmente o terceiroif statement é executado, aqui temos as seguintes duas condições -
A primeira condição é x > 95
A segunda condição é x < 30
O computador avalia as condições fornecidas e, em seguida, o resultado geral é combinado com a ajuda do operador binário &&. Se o resultado final for verdadeiro, a instrução condicional será executada; caso contrário, nenhuma instrução será executada.
Este tutorial lhe dará uma idéia básica sobre várias formas de if statements e uma introdução a switchdeclarações disponíveis na linguagem de programação C. Diferentes linguagens de programação fornecem diferentes tipos de instruções de tomada de decisão, mas o conceito básico permanece o mesmo, conforme explicado neste tutorial.
declaração if ... else
A if declaração pode ser seguida por um opcional elseinstrução, que é executada quando a expressão booleana é falsa. A sintaxe de umif...else declaração na linguagem de programação C é -
if(boolean_expression) {
/* Statement(s) will execute if the boolean expression is true */
} else {
/* Statement(s) will execute if the boolean expression is false */
}
A sintaxe acima pode ser representada na forma de um diagrama de fluxo, conforme mostrado abaixo -
A if...elsedeclaração é útil quando temos que tomar uma decisão entre duas opções. Por exemplo, se um aluno consegue mais notas do que 95, então o aluno é brilhante, caso contrário, nenhuma situação pode ser codificada, como segue -
#include <stdio.h>
int main() {
int x = 45;
if( x > 95) {
printf( "Student is brilliant\n");
} else {
printf( "Student is not brilliant\n");
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Student is not brilliant
declaração if ... elseif ... else
A if declaração pode ser seguida por um opcional else if...else declaração, que é muito útil para testar várias condições.
Enquanto estiver usando if, else if, else declarações, há alguns pontos a serem considerados -
A if pode ter zero ou um else's e deve vir depois de um else if.
A if pode ter de zero a muitos else…if's e eles devem vir antes do else.
Uma vez else…if tem sucesso, nenhum dos restantes else…if's ou else's será testado.
A sintaxe de um if...else if...else declaração na linguagem de programação C é -
if(boolean_expression 1) {
/* Executes when the boolean expression 1 is true */
}
else if( boolean_expression 2) {
/* Executes when the boolean expression 2 is true */
}
else if( boolean_expression 3) {
/* Executes when the boolean expression 3 is true */
} else {
/* Executes when the none of the above condition is true */
}
Agora com a ajuda de if...elseif...else declaração, o primeiro programa pode ser codificado da seguinte forma -
#include <stdio.h>
int main() {
int x = 45;
if( x > 95) {
printf( "Student is brilliant\n");
}
else if( x < 30) {
printf( "Student is poor\n");
}
else if( x < 95 && x > 30 ) {
printf( "Student is average\n");
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Student is average
A declaração de mudança
UMA switch declaração é uma alternativa de if statementsque permite que uma variável seja testada quanto à igualdade em relação a uma lista de valores. Cada valor é chamado decase, e a variável que está sendo ligada é verificada para cada caso de switch. Possui a seguinte sintaxe -
switch(expression){
case ONE :
statement(s);
break;
case TWO:
statement(s);
break;
......
default :
statement(s);
}
o expression usado em um switchdeclaração deve fornecer um valor inteiro, que será comparado para igualdade com diferentes casos fornecidos. Sempre que um valor de expressão corresponde a um valor de caso, o corpo desse caso será executado e, finalmente, a troca será encerrada usando umbreakdeclaração. Se nenhuma instrução break for fornecida, o computador continuará executando outras instruções disponíveis abaixo para o caso correspondente. Se nenhum dos casos corresponder, o corpo do caso padrão será executado.
A sintaxe acima pode ser representada na forma de um diagrama de fluxo, conforme mostrado abaixo -
Agora, vamos considerar outro exemplo em que queremos escrever a palavra inglesa equivalente para um determinado número. Então, ele pode ser codificado da seguinte forma -
#include <stdio.h>
int main() {
int x = 2;
switch( x ){
case 1 :
printf( "One\n");
break;
case 2 :
printf( "Two\n");
break;
case 3 :
printf( "Three\n");
break;
case 4 :
printf( "Four\n");
break;
default :
printf( "None of the above...\n");
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Two
Decisões em Java
A seguir está o programa equivalente escrito em Java, que também suporta if, if...else, if...elseif...else, e switch afirmações.
Você pode tentar executar o programa a seguir para ver a saída, que deve ser idêntica ao resultado gerado pelo exemplo C acima.
public class DemoJava {
public static void main(String []args) {
int x = 45;
if( x > 95) {
System.out.println( "Student is brilliant");
}
else if( x < 30) {
System.out.println( "Student is poor");
}
else if( x < 95 && x > 30 ) {
System.out.println( "Student is average");
}
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Student is average
Decisões em Python
A seguir está o programa equivalente escrito em Python. Python forneceif, if...else, if...elif...else, e switchafirmações. Aqui, você deve notar que o Python não faz uso de chaves para o corpo condicional, em vez disso, ele simplesmente identifica o corpo do bloco usando a indentação das instruções.
Você pode tentar executar o seguinte programa para ver a saída -
x = 45
if x > 95:
print "Student is brilliant"
elif x < 30:
print "Student is poor"
elif x < 95 and x > 30:
print "Student is average"
print "The end"
Quando o programa acima é executado, ele produz o seguinte resultado -
Student is average
The end
Vamos considerar uma situação em que você deseja imprimir Hello, World!cinco vezes. Aqui está um programa C simples para fazer o mesmo -
#include <stdio.h>
int main() {
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Era simples, mas, novamente, vamos considerar outra situação quando você quiser escrever Hello, World!mil vezes. Certamente não podemos escrever instruções printf () mil vezes. Quase todas as linguagens de programação fornecem um conceito chamadoloop, o que ajuda a executar uma ou mais instruções até um número desejado de vezes. Todas as linguagens de programação de alto nível fornecem várias formas de loops, que podem ser usados para executar uma ou mais instruções repetidamente.
Vamos escrever o programa C acima com a ajuda de um while loop e mais tarde, discutiremos como esse loop funciona
#include <stdio.h>
int main() {
int i = 0;
while ( i < 5 ) {
printf( "Hello, World!\n");
i = i + 1;
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
O programa acima faz uso de um while loop, que está sendo usado para executar um conjunto de instruções de programação incluídas em {....}. Aqui, o computador primeiro verifica se a condição dada, ou seja, a variável "a" é menor que 5 ou não e, se descobrir que a condição é verdadeira, o corpo do loop é inserido para executar as instruções fornecidas. Aqui, temos as seguintes duas instruções no corpo do loop -
A primeira instrução é a função printf () , que imprime Hello World!
A segunda afirmação é i = i + 1 , que é usada para aumentar o valor da variáveli
Depois de executar todas as instruções fornecidas no corpo do loop, o computador volta para while (i <5) e a condição dada, (i <5), é verificada novamente e o loop é executado novamente se a condição for verdadeira. Este processo se repete até que a condição fornecida permaneça verdadeira, o que significa que a variável "a" tem um valor menor que 5.
Para concluir, uma instrução de loop nos permite executar uma instrução ou grupo de instruções várias vezes. A seguir está a forma geral de uma instrução de loop na maioria das linguagens de programação -
Este tutorial foi projetado para apresentar os conceitos básicos de programação para não-programadores, então vamos discutir os dois loops mais importantes disponíveis na linguagem de programação C. Uma vez que você está claro sobre esses dois loops, você pode pegar o tutorial de programação C ou um livro de referência e verificar outros loops disponíveis em C e a forma como eles funcionam.
The while Loop
UMA while loop disponível na linguagem de programação C tem a seguinte sintaxe -
while ( condition ) {
/*....while loop body ....*/
}
O código acima pode ser representado na forma de um diagrama de fluxo, conforme mostrado abaixo -
Os seguintes pontos importantes devem ser observados sobre um loop while -
Um loop while começa com uma palavra-chave while seguido por um condition entre ().
Depois da instrução while (), você terá o corpo do loop entre chaves {...}.
Um corpo de loop while pode ter uma ou mais linhas de código-fonte a serem executadas repetidamente.
Se o corpo de um loop while tiver apenas uma linha, é opcional usar colchetes {...}.
Um loop while continua executando seu corpo até um determinado conditionpermanece verdadeiro. Assim que a condição se torna falsa, o loop while sai e continua sendo executado a partir da próxima instrução imediata após o corpo do loop while.
Uma condição geralmente é uma declaração relacional, avaliada como verdadeira ou falsa. Um valor igual a zero é tratado como falso e qualquer valor diferente de zero funciona como verdadeiro.
O fazer ... while Loop
Um loop while verifica uma determinada condição antes de executar qualquer instrução fornecida na parte do corpo. A programação C fornece outra forma de loop, chamadado...whileque permite executar um corpo de loop antes de verificar uma determinada condição. Possui a seguinte sintaxe -
do {
/*....do...while loop body ....*/
}
while ( condition );
O código acima pode ser representado na forma de um diagrama de fluxo, conforme mostrado abaixo -
Se você for escrever o exemplo acima usando do...while loop, então Hello, World irá produzir o mesmo resultado -
#include <stdio.h>
int main() {
int i = 0;
do {
printf( "Hello, World!\n");
i = i + 1;
}
while ( i < 5 );
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
A declaração de pausa
Quando o breaké encontrada dentro de um loop, o loop é encerrado imediatamente e o controle do programa é retomado na próxima instrução após o loop. A sintaxe de umbreak declaração em C é a seguinte -
break;
UMA break declaração pode ser representada na forma de um diagrama de fluxo, conforme mostrado abaixo -
A seguir está uma variante do programa acima, mas ela será lançada após a impressão de Hello World! apenas três vezes -
#include <stdio.h>
int main() {
int i = 0;
do {
printf( "Hello, World!\n");
i = i + 1;
if( i == 3 ) {
break;
}
}
while ( i < 5 );
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Hello, World!
Hello, World!
Hello, World!
A declaração continue
o continue declaração na linguagem de programação C funciona um pouco como o breakdeclaração. Em vez de forçar a rescisão,continueforça a próxima iteração do loop a ocorrer, ignorando qualquer código intermediário. A sintaxe de umcontinue declaração em C é a seguinte -
continue;
UMA continue declaração pode ser representada na forma de um diagrama de fluxo, conforme mostrado abaixo -
A seguir está uma variante do programa acima, mas ele irá pular a impressão quando a variável tiver um valor igual a 3 -
#include <stdio.h>
int main() {
int i = 0;
do {
if( i == 3 ) {
i = i + 1;
continue;
}
printf( "Hello, World!\n");
i = i + 1;
}
while ( i < 5 );
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Loops em Java
A seguir está o programa equivalente escrito em Java que também suporta while e do...whilerotações. O seguinte programa imprimeHello, World! cinco vezes como fizemos no caso da Programação C -
Você pode tentar executar o programa a seguir para ver a saída, que deve ser idêntica ao resultado gerado pelo exemplo acima.
public class DemoJava {
public static void main(String []args) {
int i = 0;
while ( i < 5 ) {
System.out.println("Hello, World!");
i = i + 1;
}
}
}
o break e continue as instruções na programação Java funcionam da mesma maneira que na programação C.
Loops em Python
A seguir está o programa equivalente escrito em Python. Python também suportawhile e do...whilerotações. O seguinte programa imprimeHello, World!cinco vezes como fizemos no caso da Programação C. Aqui, você deve notar que o Python não faz uso de chaves para o corpo do loop, em vez disso, ele simplesmente identifica o corpo do loop usando indentação das instruções.
Você pode tentar executar o seguinte programa para ver a saída. Para mostrar a diferença, usamos mais uma instrução print, que será executada quando o loop terminar.
i = 0
while (i < 5):
print "Hello, World!"
i = i + 1
print "Loop ends"
Quando o programa acima é executado, ele produz o seguinte resultado -
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Loop ends
o break e continue instruções em Python funcionam da mesma maneira que na programação C.
Cada linguagem de programação oferece suporte para a manipulação de diferentes tipos de números, como inteiros inteiros simples e números de ponto flutuante. C, Java e Python categorizam esses números em várias categorias com base em sua natureza.
Vamos voltar e verificar o capítulo de tipos de dados, onde listamos os principais tipos de dados relacionados a números -
Tipo | Palavra-chave | Faixa de valor que pode ser representada por este tipo de dados |
---|---|---|
Número | int | -32.768 a 32.767 ou -2.147.483.648 a 2.147.483.647 |
Número pequeno | baixo | -32.768 a 32.767 |
Número Longo | grandes | -2.147.483.648 a 2.147.483.647 |
Número decimal | flutuador | 1,2E-38 a 3,4E + 38 até 6 casas decimais |
Esses tipos de dados são chamados de tipos de dados primitivos e você pode usar esses tipos de dados para construir mais tipos de dados, que são chamados de tipos de dados definidos pelo usuário.
Vimos várias operações matemáticas e lógicas em números durante uma discussão sobre operadores. Portanto, sabemos como adicionar números, subtrair números, dividir números, etc.
Primeiro, vamos ver como imprimir vários tipos de números disponíveis na linguagem de programação C -
#include <stdio.h>
int main() {
short s;
int i;
long l;
float f;
double d;
s = 10;
i = 1000;
l = 1000000;
f = 230.47;
d = 30949.374;
printf( "s: %d\n", s);
printf( "i: %d\n", i);
printf( "l: %ld\n", l);
printf( "f: %.3f\n", f);
printf( "d: %.3f\n", d);
}
O resto da codificação é muito óbvio, mas usamos %.3fpara imprimir float e double, que indica o número de dígitos após o decimal a ser impresso. Quando o programa acima é executado, ele produz o seguinte resultado -
s: 10
i: 1000
l: 1000000
f: 230.470
d: 30949.374
Operações matemáticas em números
A tabela a seguir lista várias funções matemáticas integradas úteis functions disponível na linguagem de programação C, que pode ser usado para vários cálculos matemáticos importantes.
Por exemplo, se você deseja calcular a raiz quadrada de um número, por exemplo, 2304, então você tem uma função incorporada disponível para calcular a raiz quadrada.
Sr. Não. | Função e objetivo |
---|---|
1 | double cos(double); Esta função pega um ângulo (como um duplo) e retorna o cosseno. |
2 | double sin(double); Esta função pega um ângulo (como um duplo) e retorna o seno. |
3 | bronzeado duplo (duplo); Esta função pega um ângulo (como um duplo) e retorna a tangente. |
4 | double log(double); Esta função recebe um número e retorna o log natural desse número. |
5 | double pow(double, double); O primeiro é um número que você deseja aumentar e o segundo é o poder para o qual você deseja aumentá-lo. |
6 | double hypot(double, double); Se você passar a esta função o comprimento de dois lados de um triângulo retângulo, ela retornará o comprimento da hipotenusa. |
7 | double sqrt(double); Você passa um número para esta função e ela retorna sua raiz quadrada. |
8 | int abs(int); Esta função retorna o valor absoluto de um inteiro que é passado para ela. |
9 | double fabs(double); Esta função retorna o valor absoluto de qualquer número decimal passado a ela. |
10 | double floor(double); Encontra o número inteiro menor ou igual ao argumento passado para ele. |
A seguir está um exemplo simples para mostrar algumas operações matemáticas. Para utilizar essas funções, você precisa incluir o arquivo de cabeçalho matemático<math.h> em seu programa da mesma forma que você incluiu stdio.h -
#include <stdio.h>
#include <math.h>
int main() {
short s;
int i;
long l;
float f;
double d;
printf( "sin(s): %f\n", sin(10));
printf( "abs(i): %f\n", abs(1000));
printf( "floor(f): %f\n", floor(230.47));
printf( "sqrt(l): %f\n", sqrt(1000000));
printf( "pow(d, 2): %f\n", pow(2.374, 2));
}
Quando o programa acima é executado, ele produz o seguinte resultado -
sin(s): -0.544021
abs(i): -0.544021
floor(f): 230.000000
sqrt(l): 1000.000000
pow(d, 2): 5.635876
Além do uso acima, você usará números em contagem de loop, representação de flag, valores verdadeiros ou falsos na programação C.
Números em Java
A seguir está o programa equivalente escrito em Java. Java fornece quase todos os tipos de dados numéricos disponíveis na programação C.
Você pode tentar executar o programa a seguir para ver a saída, que é idêntica ao resultado gerado pelo exemplo C acima.
public class DemoJava {
public static void main(String []args) {
short s;
int i;
long l;
float f;
double d;
s = 10;
i = 1000;
l = 1000000L;
f = 230.47f;
d = 30949.374;
System.out.format( "s: %d\n", s);
System.out.format( "i: %d\n", i);
System.out.format( "l: %d\n", l);
System.out.format( "f: %f\n", f);
System.out.format( "d: %f\n", d);
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
s: 10
i: 1000
l: 1000000
f: 230.470001
d: 30949.374000
Java também fornece uma gama completa de funções integradas para cálculos matemáticos e você pode usá-las da mesma maneira que fez na programação C.
Números em Python
Python é um pouco diferente de C e Java; categoriza os números emint, long, float e complex. Aqui estão alguns exemplos de números em Python -
int | grandes | flutuador | complexo |
---|---|---|---|
10 | 51924361L | 0,0 | 3,14j |
100 | -0x19323L | 15,20 | 45.j |
-786 | 0122L | -21,9 | 9.322e-36j |
080 | 0xDEFABCECBDAECBFBAEl | 32,3 + e18 | .876j |
-0490 | 535633629843L | -90. | -.6545 + 0J |
-0x260 | -052318172735L | -32.54e100 | 3e + 26J |
0x69 | -4721885298529L | 70.2-E12 | 4.53e-7j |
A seguir está o programa equivalente escrito em Python -
s = 10
i = 1000
l = 1000000
f = 230.47
d = 30949.374
print "s: ", s
print "i: ", i
print "l: ", l
print "f: ", f
print "d: ", d
Quando o programa acima é executado, ele produz o seguinte resultado -
s: 10
i: 1000
l: 1000000
f: 230.47
d: 30949.374
Python também fornece uma gama completa de funções integradas para cálculos matemáticos e você pode usá-las da mesma forma que usou na programação C.
Se fosse fácil trabalhar com números na programação de computadores, seria ainda mais fácil trabalhar com personagens. Os caracteres são alfabetos simples como a, b, c, d ...., A, B, C, D, ....., mas com uma exceção. Na programação de computadores, qualquer número de dígito único como 0, 1, 2, .... e caracteres especiais como $,%, +, -.... etc., também são tratados como caracteres e para atribuí-los em um tipo de caractere variável, você simplesmente precisa colocá-los dentrosingle quotes. Por exemplo, a seguinte instrução define uma variável de tipo de caracterech e atribuímos um valor 'a' a ele -
char ch = 'a';
Aqui, ch é uma variável de tipo de caractere que pode conter um caractere do conjunto de caracteres da implementação e 'a' é chamado de character literalou uma constante de caractere. Não apenas a, b, c, .... mas quando qualquer número como 1, 2, 3 .... ou qualquer caractere especial como!, @, #, #, $, .... é mantido entre aspas simples , então eles serão tratados como um literal de caractere e podem ser atribuídos a uma variável de tipo de caractere, portanto, o seguinte é uma declaração válida -
char ch = '1';
Um tipo de dados de caractere consome 8 bits de memória, o que significa que você pode armazenar qualquer coisa em um caractere cujo valor ASCII esteja entre -127 e 127, de modo que possa armazenar qualquer um dos 256 valores diferentes. Um tipo de dados de caractere pode armazenar qualquer um dos caracteres disponíveis em seu teclado, incluindo caracteres especiais como!, @, #, #, $,%, ^, &, *, (,), _, +, {,}, Etc.
Observe que você pode manter apenas um único alfabeto ou um número de dígito único entre aspas simples e mais de um alfabeto ou dígitos não são permitidos entre aspas simples. Portanto, as seguintes declarações são inválidas na programação C -
char ch1 = 'ab';
char ch2 = '10';
Dada a seguir é um exemplo simples, que mostra como definir, atribuir e imprimir caracteres na linguagem de programação C -
#include <stdio.h>
int main() {
char ch1;
char ch2;
char ch3;
char ch4;
ch1 = 'a';
ch2 = '1';
ch3 = '$';
ch4 = '+';
printf( "ch1: %c\n", ch1);
printf( "ch2: %c\n", ch2);
printf( "ch3: %c\n", ch3);
printf( "ch4: %c\n", ch4);
}
Aqui, usamos% c para imprimir um tipo de dados de caractere. Quando o programa acima é executado, ele produz o seguinte resultado -
ch1: a
ch2: 1
ch3: $
ch4: +
Sequências de Escape
Muitas linguagens de programação suportam um conceito chamado Escape Sequence. Quando um caractere é precedido por uma barra invertida (\), é chamado de sequência de escape e tem um significado especial para o compilador. Por exemplo, \ n na instrução a seguir é um caractere válido e é chamado de caractere de nova linha -
char ch = '\n';
Aqui, personagem nfoi precedido por uma barra invertida (\), tem um significado especial que é uma nova linha, mas lembre-se de que a barra invertida (\) tem um significado especial com apenas alguns caracteres. A seguinte declaração não terá nenhum significado na programação C e será considerada inválida -
char ch = '\1';
A tabela a seguir lista as sequências de escape disponíveis na linguagem de programação C -
Sequência de fuga | Descrição |
---|---|
\ t | Insere uma guia no texto neste ponto. |
\ b | Insere um backspace no texto neste ponto. |
\ n | Insere uma nova linha no texto neste ponto. |
\ r | Insere um retorno de carro no texto neste ponto. |
\ f | Insere um avanço de formulário no texto neste ponto. |
\ ' | Insere um caractere de aspas simples no texto neste ponto. |
\ " | Insere um caractere de aspas duplas no texto neste ponto. |
\\ | Insere um caractere de barra invertida no texto neste ponto. |
O exemplo a seguir mostra como o compilador interpreta uma sequência de escape em uma instrução de impressão -
#include <stdio.h>
int main() {
char ch1;
char ch2;
char ch3;
char ch4;
ch1 = '\t';
ch2 = '\n';
printf( "Test for tabspace %c and a newline %c will start here", ch1, ch2);
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Test for tabspace and a newline
will start here
Personagens em Java
A seguir está o programa equivalente escrito em Java. Java trata os tipos de dados de caracteres da mesma maneira que vimos na programação C. No entanto, o Java fornece suporte adicional para manipulação de caracteres.
Você pode tentar executar o programa a seguir para ver a saída, que deve ser idêntica ao resultado gerado pelo exemplo C acima.
public class DemoJava {
public static void main(String []args) {
char ch1;
char ch2;
char ch3;
char ch4;
ch1 = 'a';
ch2 = '1';
ch3 = '$';
ch4 = '+';
System.out.format( "ch1: %c\n", ch1);
System.out.format( "ch2: %c\n", ch2);
System.out.format( "ch3: %c\n", ch3);
System.out.format( "ch4: %c\n", ch4);
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
ch1: a
ch2: 1
ch3: $
ch4: +
Java também oferece suporte a sequência de escape da mesma maneira que você os usou na programação C.
Personagens em Python
Python não suporta nenhum tipo de dados de caractere, mas todos os caracteres são tratados como string, que é uma sequência de caracteres. Vamos estudar cordas em um capítulo separado. Você não precisa ter nenhum arranjo especial ao usar um único caractere no Python.
A seguir está o programa equivalente escrito em Python -
ch1 = 'a';
ch2 = '1';
ch3 = '$';
ch4 = '+';
print "ch1: ", ch1
print "ch2: ", ch2
print "ch3: ", ch3
print "ch4: ", ch4
Quando o programa acima é executado, ele produz o seguinte resultado -
ch1: a
ch2: 1
ch3: $
ch4: +
Python suporta sequências de escape da mesma maneira que você as usou na programação C.
Considere uma situação em que precisamos armazenar cinco números inteiros. Se usarmos os conceitos de variável simples de programação e tipo de dados, precisamos de cinco variáveis deint tipo de dados e o programa serão os seguintes -
#include <stdio.h>
int main() {
int number1;
int number2;
int number3;
int number4;
int number5;
number1 = 10;
number2 = 20;
number3 = 30;
number4 = 40;
number5 = 50;
printf( "number1: %d\n", number1);
printf( "number2: %d\n", number2);
printf( "number3: %d\n", number3);
printf( "number4: %d\n", number4);
printf( "number5: %d\n", number5);
}
Era simples porque tínhamos que armazenar apenas cinco números inteiros. Agora vamos assumir que temos que armazenar 5.000 números inteiros. Vamos usar 5000 variáveis?
Para lidar com tais situações, quase todas as linguagens de programação fornecem um conceito chamado array. Uma matriz é uma estrutura de dados, que pode armazenar uma coleção de tamanho fixo de elementos do mesmo tipo de dados. Uma matriz é usada para armazenar uma coleção de dados, mas geralmente é mais útil pensar em uma matriz como uma coleção de variáveis do mesmo tipo.
Em vez de declarar variáveis individuais, como número1, número2, ..., número99, você apenas declara uma variável de matriz numberdo tipo inteiro e use número1 [0], número1 [1] e ..., número1 [99] para representar variáveis individuais. Aqui, 0, 1, 2, ..... 99 sãoindex associado com var variável e eles estão sendo usados para representar os elementos individuais disponíveis na matriz.
Todos os arrays consistem em locais de memória contíguos. O endereço mais baixo corresponde ao primeiro elemento e o endereço mais alto ao último elemento.
Criar matrizes
Para criar uma variável de array em C, um programador especifica o tipo dos elementos e o número de elementos a serem armazenados nesse array. A seguir, é fornecida uma sintaxe simples para criar um array em programação C -
type arrayName [ arraySize ];
Isso é chamado de matriz unidimensional . oarraySize deve ser uma constante inteira maior que zero e typepode ser qualquer tipo de dados C válido. Por exemplo, agora para declarar uma matriz de 10 elementos chamadanumber do tipo int, use esta declaração -
int number[10];
Aqui, o número é uma matriz variável, que é suficiente para conter até 10 números inteiros.
Inicializando matrizes
Você pode inicializar um array em C um por um ou usando uma única instrução da seguinte maneira -
int number[5] = {10, 20, 30, 40, 50};
O número de valores entre colchetes {} não pode ser maior do que o número de elementos que declaramos para a matriz entre colchetes [].
Se você omitir o tamanho do array, um array grande o suficiente para conter a inicialização é criado. Portanto, se você escrever -
int number[] = {10, 20, 30, 40, 50};
Você criará exatamente a mesma matriz que fez no exemplo anterior. A seguir está um exemplo para atribuir um único elemento da matriz -
number[4] = 50;
A instrução acima atribui o número do elemento 5 na matriz com um valor de 50. Todas as matrizes têm 0 como o índice de seu primeiro elemento, que também é chamado de índice de base e o último índice de uma matriz será o tamanho total da matriz menos 1. A imagem a seguir mostra a representação pictórica da matriz que discutimos acima -
Acessando Elementos de Matriz
Um elemento é acessado indexando o nome da matriz. Isso é feito colocando o índice do elemento entre colchetes após o nome da matriz. Por exemplo -
int var = number[9];
A instrução acima pegará o décimo elemento da matriz e atribuirá o valor a varvariável. O exemplo a seguir usa todos os três conceitos acima mencionados viz. criação, atribuição e acesso a matrizes -
#include <stdio.h>
int main () {
int number[10]; /* number is an array of 10 integers */
int i = 0;
/* Initialize elements of array n to 0 */
while( i < 10 ) {
/* Set element at location i to i + 100 */
number[ i ] = i + 100;
i = i + 1;
}
/* Output each array element's value */
i = 0;
while( i < 10 ) {
printf("number[%d] = %d\n", i, number[i] );
i = i + 1;
}
return 0;
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
number[0] = 100
number[1] = 101
number[2] = 102
number[3] = 103
number[4] = 104
number[5] = 105
number[6] = 106
number[7] = 107
number[8] = 108
number[9] = 109
Arrays em Java
A seguir está o programa equivalente escrito em Java. Java oferece suporte a matrizes, mas há uma pequena diferença na maneira como são criados em Java usando onew operador.
Você pode tentar executar o programa a seguir para ver a saída, que deve ser idêntica ao resultado gerado pelo exemplo C acima.
public class DemoJava {
public static void main(String []args) {
int[] number = new int[10];
int i = 0;
while( i < 10 ) {
number[ i ] = i + 100;
i = i + 1;
}
i = 0;
while( i < 10 ) {
System.out.format( "number[%d] = %d\n", i, number[i] );
i = i + 1;
}
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
number[0] = 100
number[1] = 101
number[2] = 102
number[3] = 103
number[4] = 104
number[5] = 105
number[6] = 106
number[7] = 107
number[8] = 108
number[9] = 109
Arrays (listas) em Python
Python não tem um conceito de Array, em vez disso, Python fornece outra estrutura de dados chamada list, que fornece funcionalidade semelhante às matrizes em qualquer outra linguagem.
A seguir está o programa equivalente escrito em Python -
# Following defines an empty list.
number = []
i = 0
while i < 10:
# Appending elements in the list
number.append(i + 100)
i = i + 1
i = 0
while i < 10:
# Accessing elements from the list
print "number[", i, "] = ", number[ i ]
i = i + 1
Quando o programa acima é executado, ele produz o seguinte resultado -
number[ 0 ] = 100
number[ 1 ] = 101
number[ 2 ] = 102
number[ 3 ] = 103
number[ 4 ] = 104
number[ 5 ] = 105
number[ 6 ] = 106
number[ 7 ] = 107
number[ 8 ] = 108
number[ 9 ] = 109
Durante nossa discussão sobre characters, aprendemos que o tipo de dados de caractere lida com um único caractere e você pode atribuir qualquer caractere do teclado a uma variável de tipo de caractere.
Agora, vamos avançar um pouco e considerar uma situação em que precisamos armazenar mais de um caractere em uma variável. Vimos que a programação C não permite armazenar mais de um caractere em uma variável de tipo de caractere. Portanto, as seguintes instruções são inválidas na programação C e produzem erros de sintaxe -
char ch1 = 'ab';
char ch2 = '10';
Também vimos como usar o conceito de arrayspara armazenar mais de um valor de tipo de dados semelhante em uma variável. Aqui está a sintaxe para armazenar e imprimir cinco números em uma matriz do tipo int -
#include <stdio.h>
main() {
int number[5] = {10, 20, 30, 40, 50};
int i = 0;
while( i < 5 ) {
printf("number[%d] = %d\n", i, number[i] );
i = i + 1;
}
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
number[0] = 10
number[1] = 20
number[2] = 30
number[3] = 40
number[4] = 50
Agora, vamos definir uma matriz de cinco caracteres da mesma forma que fizemos para os números e tentar imprimi-los -
#include <stdio.h>
main() {
char ch[5] = {'H', 'e', 'l', 'l', 'o'};
int i = 0;
while( i < 5 ) {
printf("ch[%d] = %c\n", i, ch[i] );
i = i + 1;
}
}
Aqui, usamos% c para imprimir o valor do caractere. Quando o código acima é compilado e executado, ele produz o seguinte resultado -
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
Se você concluiu o exemplo acima, acho que entendeu como as strings funcionam na programação C, porque strings in C are represented as arrays of characters. A programação em C simplificou a atribuição e impressão de strings. Vamos verificar o mesmo exemplo mais uma vez com uma sintaxe simplificada -
#include <stdio.h>
main() {
char ch[5] = "Hello";
int i = 0;
/* Print as a complete string */
printf("String = %s\n", ch);
/* Print character by character */
while( i < 5 ) {
printf("ch[%d] = %c\n", i, ch[i] );
i = i + 1;
}
}
Aqui, usamos% s para imprimir o valor da string completa usando o nome do array ch, que é na verdade o início do endereço de memória que contém ch variável conforme mostrado abaixo -
Embora não seja visível nos exemplos acima, um programa C atribui internamente um caractere nulo '\0'como o último caractere de cada string. Indica o fim da string e significa que se você deseja armazenar uma string de 5 caracteres em uma matriz, deve definir um tamanho de matriz 6 como uma boa prática, embora C não reclame disso.
Se o código acima for compilado e executado, ele produzirá o seguinte resultado -
String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
Conceitos básicos de string
Com base na discussão acima, podemos concluir os seguintes pontos importantes sobre strings na linguagem de programação C -
Strings em C são representadas como matrizes de caracteres.
Podemos constituir uma string na programação C atribuindo caractere por caractere em um array de caracteres.
Podemos constituir uma string na programação C atribuindo uma string completa entre aspas.
Podemos imprimir uma string caractere por caractere usando um subscrito de array ou uma string completa usando um nome de array sem subscrito.
O último caractere de cada string é um caractere nulo, ou seja, ‘\0’.
A maioria das linguagens de programação fornece funções integradas para manipular strings, ou seja, você pode concatenar strings, pode pesquisar em uma string, pode extrair sub-strings de uma string, etc. Para mais informações, você pode verificar nosso tutorial detalhado sobre Programação C ou qualquer outra linguagem de programação.
Strings em Java
Embora você possa usar matrizes de caracteres para armazenar strings, Java é uma linguagem de programação avançada e seus designers tentaram fornecer funcionalidade adicional. Java fornece strings como um tipo de dados embutido como qualquer outro tipo de dados. Isso significa que você pode definir strings diretamente em vez de defini-los como uma matriz de caracteres.
A seguir está o programa equivalente escrito em Java. Java faz uso donew operador para criar variáveis de string conforme mostrado no programa a seguir.
Você pode tentar executar o seguinte programa para ver a saída -
public class DemoJava {
public static void main(String []args) {
String str = new String("Hello");
System.out.println( "String = " + str );
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
String = Hello
Strings em Python
Criar strings em Python é tão simples quanto atribuir uma string em uma variável Python usando aspas simples ou duplas.
A seguir, é fornecido um programa simples que cria duas strings e as imprime usando a função print () -
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1 = ", var1
print "var2 = ", var2
Quando o programa acima é executado, ele produz o seguinte resultado -
var1 = Hello World!
var2 = Python Programming
Python não suporta tipo de caractere; estes são tratados como strings de comprimento um, portanto, também considerados substring.
Para acessar substrings, use os colchetes para fatiar junto com o índice ou índices para obter sua substring. Dê uma olhada no seguinte segmento de código -
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
Quando o código acima é executado, ele produz o seguinte resultado -
var1[0]: H
var2[1:5]: ytho
Uma função é um bloco de código organizado e reutilizável que é usado para realizar uma única ação relacionada. As funções fornecem melhor modularidade para seu aplicativo e um alto grau de reutilização de código. Você já viu várias funções comoprintf() e main(). Elas são chamadas de funções integradas fornecidas pela própria linguagem, mas podemos escrever nossas próprias funções também e este tutorial irá ensiná-lo a escrever e usar essas funções na linguagem de programação C.
O bom das funções é que elas são famosas por diversos nomes. Diferentes linguagens de programação os nomeiam de maneiras diferentes, por exemplo, funções, métodos, sub-rotinas, procedimentos, etc. Se você encontrar tal terminologia, imagine o mesmo conceito, que discutiremos neste tutorial.
Vamos começar com um programa onde definiremos duas matrizes de números e, a partir de cada matriz, encontraremos o maior número. Abaixo estão as etapas para descobrir o número máximo de um determinado conjunto de números -
1. Get a list of numbers L1, L2, L3....LN
2. Assume L1 is the largest, Set max = L1
3. Take next number Li from the list and do the following
4. If max is less than Li
5. Set max = Li
6. If Li is last number from the list then
7. Print value stored in max and come out
8. Else prepeat same process starting from step 3
Vamos traduzir o programa acima na linguagem de programação C -
#include <stdio.h>
int main() {
int set1[5] = {10, 20, 30, 40, 50};
int set2[5] = {101, 201, 301, 401, 501};
int i, max;
/* Process first set of numbers available in set1[] */
max = set1[0];
i = 1;
while( i < 5 ) {
if( max < set1[i] ) {
max = set1[i];
}
i = i + 1;
}
printf("Max in first set = %d\n", max );
/* Now process second set of numbers available in set2[] */
max = set2[0];
i = 1;
while( i < 5 ) {
if( max < set2[i] ) {
max = set2[i];
}
i = i + 1;
}
printf("Max in second set = %d\n", max );
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Max in first set = 50
Max in second set = 501
Se você tiver certeza sobre o exemplo acima, será fácil entender por que precisamos de uma função. No exemplo acima, existem apenas dois conjuntos de números, conjunto1 e conjunto2, mas considere uma situação em que temos 10 ou mais conjuntos de números semelhantes para descobrir os números máximos de cada conjunto. Em tal situação, teremos que repetir, processar 10 ou mais vezes e, finalmente, o programa se tornará muito grande com o código repetido. Para lidar com tal situação, escrevemos nossas funções onde tentamos manter o código-fonte que será usado repetidamente em nossa programação.
Agora, vamos ver como definir uma função na linguagem de programação C e, nas seções subsequentes, explicaremos como usá-las.
Definindo uma função
A forma geral de definição de uma função na linguagem de programação C é a seguinte -
return_type function_name( parameter list ) {
body of the function
return [expression];
}
Uma definição de função na programação C consiste em um cabeçalho de função e um corpo de função . Aqui estão todas as partes de uma função -
Return Type- Uma função pode retornar um valor. oreturn_typeé o tipo de dados do valor que a função retorna. Algumas funções realizam as operações desejadas sem retornar um valor. Neste caso, o return_type é a palavra-chavevoid.
Function Name- Este é o nome real da função. O nome da função e a lista de parâmetros juntos constituem a assinatura da função.
Parameter List- Um parâmetro é como um espaço reservado. Quando uma função é chamada, você passa um valor como parâmetro. Esse valor é conhecido como o parâmetro ou argumento real. A lista de parâmetros se refere ao tipo, ordem e número dos parâmetros de uma função. Os parâmetros são opcionais; ou seja, uma função pode não conter parâmetros.
Function Body - O corpo da função contém uma coleção de instruções que definem o que a função faz.
Chamando uma função
Ao criar uma função C, você dá uma definição do que a função deve fazer. Para usar uma função, você terá que chamar essa função para executar uma tarefa definida.
Agora, vamos escrever o exemplo acima com a ajuda de uma função -
#include <stdio.h>
int getMax( int set[] ) {
int i, max;
max = set[0];
i = 1;
while( i < 5 ) {
if( max < set[i] ) {
max = set[i];
}
i = i + 1;
}
return max;
}
main() {
int set1[5] = {10, 20, 30, 40, 50};
int set2[5] = {101, 201, 301, 401, 501};
int max;
/* Process first set of numbers available in set1[] */
max = getMax(set1);
printf("Max in first set = %d\n", max );
/* Now process second set of numbers available in set2[] */
max = getMax(set2);
printf("Max in second set = %d\n", max );
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Max in first set = 50
Max in second set = 501
Funções em Java
Se você tem clareza sobre as funções da programação C, é fácil entendê-las também em Java. A programação Java os nomeia comomethods, mas o resto dos conceitos permanecem mais ou menos os mesmos.
A seguir está o programa equivalente escrito em Java. Você pode tentar executá-lo para ver a saída -
public class DemoJava {
public static void main(String []args) {
int[] set1 = {10, 20, 30, 40, 50};
int[] set2 = {101, 201, 301, 401, 501};
int max;
/* Process first set of numbers available in set1[] */
max = getMax(set1);
System.out.format("Max in first set = %d\n", max );
/* Now process second set of numbers available in set2[] */
max = getMax(set2);
System.out.format("Max in second set = %d\n", max );
}
public static int getMax( int set[] ) {
int i, max;
max = set[0];
i = 1;
while( i < 5 ) {
if( max < set[i] ) {
max = set[i];
}
i = i + 1;
}
return max;
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
Max in first set = 50
Max in second set = 501
Funções em Python
Mais uma vez, se você conhece o conceito de funções em programação C e Java, então Python não é muito diferente. Dada a seguir está a sintaxe básica para definir uma função em Python -
def function_name( parameter list ):
body of the function
return [expression]
Usando esta sintaxe de função em Python, o exemplo acima pode ser escrito da seguinte maneira -
def getMax( set ):
max = set[0]
i = 1
while( i < 5 ):
if( max < set[i] ):
max = set[i]
i = i + 1
return max
set1 = [10, 20, 30, 40, 50]
set2 = [101, 201, 301, 401, 501]
# Process first set of numbers available in set1[]
max = getMax(set1)
print "Max in first set = ", max
# Now process second set of numbers available in set2[]
max = getMax(set2)
print "Max in second set = ", max
Quando o código acima é executado, ele produz o seguinte resultado -
Max in first set = 50
Max in second set = 501
Arquivos de computador
Um arquivo de computador é usado para armazenar dados em formato digital, como texto simples, dados de imagem ou qualquer outro conteúdo. Os arquivos do computador podem ser organizados em diferentes diretórios. Os arquivos são usados para manter os dados digitais, enquanto os diretórios são usados para manter os arquivos.
Os arquivos do computador podem ser considerados a contrapartida digital dos documentos em papel. Durante a programação, você mantém seu código-fonte em arquivos de texto com extensões diferentes, por exemplo, arquivos de programação C terminam com a extensão.c, Arquivos de programação Java com .javae arquivos Python com .py.
Entrada / saída de arquivo
Normalmente, você cria arquivos usando editores de texto como notepad, MS Word, MS Excel ou MS Powerpoint, etc. No entanto, muitas vezes, precisamos criar arquivos usando programas de computador também. Podemos modificar um arquivo existente usando um programa de computador.
Entrada de arquivo significa dados que são gravados em um arquivo e saída de arquivo significa dados que são lidos de um arquivo. Na verdade, os termos de entrada e saída estão mais relacionados à entrada e saída da tela. Quando exibimos um resultado na tela, ele é chamado de saída. Da mesma forma, se fornecermos alguma entrada ao nosso programa a partir do prompt de comando, ela será chamada de entrada.
Por enquanto, é suficiente lembrar que escrever em um arquivo é entrada de arquivo e ler algo de um arquivo é saída de arquivo.
Modos de operação de arquivo
Antes de começarmos a trabalhar com qualquer arquivo usando um programa de computador, precisamos criar um novo arquivo se ele não existir ou abrir um arquivo já existente. Em qualquer caso, podemos abrir um arquivo nos seguintes modos -
Read-Only Mode- Se você vai apenas ler um arquivo existente e não deseja gravar nenhum conteúdo adicional no arquivo, então você abrirá o arquivo no modo somente leitura. Quase todas as linguagens de programação fornecem sintaxe para abrir arquivos no modo somente leitura.
Write-Only Mode- Se você pretende gravar em um arquivo existente ou em um arquivo recém-criado, mas não deseja ler nenhum conteúdo escrito desse arquivo, abra o arquivo no modo somente gravação. Todas as linguagens de programação fornecem sintaxe para abrir arquivos no modo somente gravação.
Read & Write Mode - Se você for ler e gravar no mesmo arquivo, abrirá o arquivo no modo de leitura e gravação.
Append Mode- Quando você abre um arquivo para gravação, permite que você comece a gravar desde o início do arquivo; no entanto, ele substituirá o conteúdo existente, se houver. Suponha que não queremos sobrescrever nenhum conteúdo existente, então abrimos o arquivo no modo anexar. O modo Anexar é basicamente um modo de gravação, que permite que o conteúdo seja anexado no final do arquivo. Quase todas as linguagens de programação fornecem sintaxe para abrir arquivos no modo anexar.
Nas seções a seguir, aprenderemos como abrir um novo arquivo, como escrever nele e, posteriormente, como ler e anexar mais conteúdo ao mesmo arquivo.
Abrindo arquivos
Você pode usar o fopen()função para criar um novo arquivo ou para abrir um arquivo existente. Esta chamada irá inicializar um objeto do tipoFILE, que contém todas as informações necessárias para controlar o fluxo. Aqui está o protótipo, ou seja, a assinatura desta chamada de função -
FILE *fopen( const char * filename, const char * mode );
Aqui, filename é uma string literal, que você usará para nomear seu arquivo e acessar mode pode ter um dos seguintes valores -
Sr. Não | Modo e descrição |
---|---|
1 | r Abre um arquivo de texto existente para fins de leitura. |
2 | w Abre um arquivo de texto para escrita. Se não existir, um novo arquivo será criado. Aqui, seu programa começará a escrever o conteúdo desde o início do arquivo. |
3 | a Abre um arquivo de texto para escrever no modo de acréscimo. Se não existir, um novo arquivo será criado. Aqui, seu programa começará a anexar conteúdo ao conteúdo do arquivo existente. |
4 | r+ Abre um arquivo de texto para leitura e escrita. |
5 | w+ Abre um arquivo de texto para leitura e escrita. Ele primeiro trunca o arquivo para comprimento zero, se existir; caso contrário, cria o arquivo se ele não existir. |
6 | a+ Abre um arquivo de texto para leitura e escrita. Ele cria um arquivo, se ele não existir. A leitura começará do início, mas a escrita só pode ser anexada. |
Fechando um Arquivo
Para fechar um arquivo, use o fclose( )função. O protótipo desta função é -
int fclose( FILE *fp );
o fclose( ) função retorna zero em caso de sucesso, ou EOF, caractere especial, se houver erro no fechamento do arquivo. Esta função, na verdade, libera todos os dados ainda pendentes no buffer para o arquivo, fecha o arquivo e libera qualquer memória usada para o arquivo. O EOF é uma constante definida no arquivo de cabeçalhostdio.h.
Existem várias funções fornecidas pela biblioteca padrão C para ler e gravar um arquivo caractere por caractere ou na forma de uma string de comprimento fixo. Vamos ver alguns deles na próxima seção.
Gravando um Arquivo
A seguir está a função mais simples para escrever caracteres individuais em um fluxo -
int fputc( int c, FILE *fp );
A função fputc() escreve o valor do caractere do argumento c para o fluxo de saída referenciado por fp. Ele retorna o caractere escrito escrito com sucesso, caso contrárioEOFse houver um erro. Você pode usar as seguintes funções para escrever uma string terminada em null em um stream -
int fputs( const char *s, FILE *fp );
A função fputs() escreve a string sno arquivo referenciado por fp. Ele retorna um valor não negativo em caso de sucesso, caso contrárioEOFé retornado em caso de algum erro. Você também pode usar a funçãoint fprintf(FILE *fp,const char *format, ...)para escrever uma string em um arquivo. Experimente o seguinte exemplo -
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("/tmp/test.txt", "w+");
fprintf(fp, "This is testing for fprintf...\n");
fputs("This is testing for fputs...\n", fp);
fclose(fp);
}
Quando o código acima é compilado e executado, ele cria um novo arquivo test.txt dentro /tmpdiretório e escreve duas linhas usando duas funções diferentes. Vamos ler este arquivo na próxima seção.
Lendo um arquivo
A seguir está a função mais simples de ler um arquivo de texto caractere por caractere -
int fgetc( FILE * fp );
o fgetc() função lê um caractere do arquivo de entrada referenciado por fp. O valor de retorno é o caractere lido; ou em caso de algum erro, retornaEOF. A função a seguir permite que você leia uma string de um fluxo -
char *fgets( char *buf, int n, FILE *fp );
A função fgets() lê até n - 1 caracteres do fluxo de entrada referenciado por fp. Ele copia a string lida para o bufferbuf, anexando um null caractere para encerrar a string.
Se esta função encontrar um caractere de nova linha '\ n' ou EOF antes de terem lido o número máximo de caracteres, ela retornará apenas os caracteres lidos até aquele ponto, incluindo o caractere de nova linha. Você também pode usarint fscanf(FILE *fp, const char *format, ...) para ler strings de um arquivo, mas para de ler depois de encontrar o primeiro caractere de espaço.
#include <stdio.h>
main() {
FILE *fp;
char buff[255];
fp = fopen("/tmp/test.txt", "r");
fscanf(fp, "%s", buff);
printf("1 : %s\n", buff );
fgets(buff, 255, (FILE*)fp);
printf("2: %s\n", buff );
fgets(buff, 255, (FILE*)fp);
printf("3: %s\n", buff );
fclose(fp);
}
Quando o código acima é compilado e executado, ele lê o arquivo criado na seção anterior e produz o seguinte resultado -
1 : This
2 : is testing for fprintf...
3 : This is testing for fputs...
Vamos analisar o que aconteceu aqui. Primeiro, ofscanf() método lê Thisporque depois disso, encontrou um espaço. A segunda chamada é parafgets(), que lê a linha restante até encontrar o fim da linha. Finalmente, a última chamadafgets() lê a segunda linha completamente.
E / S de arquivo em Java
Java fornece um conjunto ainda mais rico de funções para lidar com E / S de arquivo. Para saber mais sobre este tópico, sugerimos que você verifique nossos Tutoriais Java.
Aqui, veremos um programa Java simples, que é equivalente ao programa C explicado acima. Este programa irá abrir um arquivo de texto, escrever algumas linhas de texto nele e fechar o arquivo. Finalmente, o mesmo arquivo é aberto e lido a partir de um arquivo já criado. Você pode tentar executar o seguinte programa para ver a saída -
import java.io.*;
public class DemoJava {
public static void main(String []args) throws IOException {
File file = new File("/tmp/java.txt");
// Create a File
file.createNewFile();
// Creates a FileWriter Object using file object
FileWriter writer = new FileWriter(file);
// Writes the content to the file
writer.write("This is testing for Java write...\n");
writer.write("This is second line...\n");
// Flush the memory and close the file
writer.flush();
writer.close();
// Creates a FileReader Object
FileReader reader = new FileReader(file);
char [] a = new char[100];
// Read file content in the array
reader.read(a);
System.out.println( a );
// Close the file
reader.close();
}
}
Quando o programa acima é executado, ele produz o seguinte resultado -
This is testing for Java write...
This is second line...
E / S de arquivo em Python
O programa a seguir mostra a mesma funcionalidade para abrir um novo arquivo, gravar algum conteúdo nele e, finalmente, ler o mesmo arquivo -
# Create a new file
fo = open("/tmp/python.txt", "w")
# Writes the content to the file
fo.write( "This is testing for Python write...\n");
fo.write( "This is second line...\n");
# Close the file
fo.close()
# Open existing file
fo = open("/tmp/python.txt", "r")
# Read file content in a variable
str = fo.read(100);
print str
# Close opened file
fo.close()
Quando o código acima é executado, ele produz o seguinte resultado -
This is testing for Python write...
This is second line...
Agradecemos sua paciência em seguir este tutorial. Tentamos ser concisos, mas como este assunto contém vários tópicos, mostramos alguns exemplos detalhadamente.
Se você não entendeu nenhum dos conceitos, recomendamos que você repita o tutorial e, assim que estiver confortável com os conceitos explicados neste tutorial, poderá prosseguir.
Existem muitos outros assuntos relacionados à programação de computadores que não abordamos intencionalmente para evitar qualquer confusão, mas temos certeza de que esses conceitos não serão difíceis de entender, desde que você se sinta confortável com os conceitos explicados neste tutorial.
No ponto de tutorial, colocamos muito esforço para preparar tutoriais abrangentes sobre as linguagens de programação C, Java e Python e recomendamos fortemente que você inicie qualquer um deles, após ter concluído este tutorial.
Por favor, compartilhe conosco suas opiniões sobre este tutorial, mencionando o nome do tutorial na linha de assunto em [email protected]. Se você tiver alguma sugestão para melhorar ainda mais este tutorial, definitivamente gostaríamos de ouvir de você.