Página | 1
1
TECNOLOGIA ELEMENTAR – CAPÍTULO 3PCNA
Vol. 1
ELEMENTAR
CAPÍTULO 3
– APRESENTANDO A
LINGUAGEM C
TECNOLOGIA
Página | 2
SUMÁRIO
Apresentação --- 3
Capítulo 3 --- 4
3. Apresentando a Linguagem C --- 4
3.1. Estrutura e sintaxe da Linguagem C --- 4
3.2. Declaração e tipos de variáveis --- 5
3.3. Tipos de operadores --- 6
3.4. Entrada e saída de dados --- 10
Página | 3
Apresentação
Ao chegar à UFPA, você tem a possibilidade de cursar gratuitamente cursos de nivelamento em Ciências Básicas (Física, Química, Matemática e Tecnologia). Assistindo às aulas no próprio ambiente em que cursará sua graduação, isso auxiliará você a adquirir o conhecimento necessário para enfrentar melhor o programa curricular do seu curso.
Então seja Bem-vindo ao Curso de Nivelamento em Tecnologia Elementar do PCNA. Este é o terceiro de uma série de cinco E-books que vão lhe acompanhar durante o curso, o professor utilizará este material como apoio às suas aulas e é fundamental que você o leia e acompanhe as atividades propostas.
A série “E-books PCNA-Tecnologia” foi desenvolvida com o propósito de apresentar o conteúdo do curso de Tecnologia Elementar, fornecendo também ferramentas para facilitar o ensino e a aprendizagem das técnicas de programação que você irá encontrar em breve na sua graduação.
Neste fascículo você irá encontrar o conteúdo introdutório a respeito da linguagem de programação, talvez seja algo novo para você, então, atenção e compreensão se fazem necessária. Bons estudos!
Página | 4
Capítulo 3
3. Apresentando a Linguagem C
Agora já temos bagagem suficiente para iniciarmos o estudo da Linguagem C em si. Então este capítulo é voltado para os conceitos iniciais que devem ser abordados, pois eles serão usados até o final do curso.
Aprenderemos a declarar variáveis e atribuir valores as mesmas, além de realizar operações matemáticas e exibir os resultados.
3.1. Estrutura e sintaxe da Linguagem C
O que difere uma linguagem de programação da outra é a sua estrutura e sintaxe, por exemplo, em algumas linguagens, a ordem em que as funções são declaradas não interfere na hora da execução do código, porém na linguagem C, essa ordem deve ser levada em consideração, ou então teremos sérios problemas.
Outro ponto importante que vale ressaltar é que existem vários ambientes especiais para o desenvolvimento desses códigos. Estes ambientes são conhecidos como IDE (Integrated Development Environment) – Ambiente de Desenvolvimento Integrado. São eles os responsáveis por identificar a linguagem que estamos programando e então, através de um “tradutor”, convertem os nossos códigos em sinais que possam ser interpretados de fato pelos nossos computadores.
Esses tradutores são conhecidos como compiladores, e são eles que acusam os erros de sintaxe nos nossos códigos, por isso também funcionam como uma espécie de corretor ortográfico da linguagem de programação.
A figura 3.1 mostra a interface inicial do Code Blocks, IDE que usaremos em nosso curso de programação em C.
Página | 5 Figura 3.1 – Interface inicial do Code Blocks.
3.2. Declaração e tipos de variáveis
A maioria dos procedimentos que utilizamos nos códigos retornam algum tipo de valor, o qual é armazenado em um espaço na memória do computador. Esse espaço é conhecido como variável. Existem alguns tipos específicos de variáveis, conhecidos como dados primitivos. A seguir conheceremos os dados primitivos que usaremos nesse curso e como eles podem ser declarados e usados ao longo de um programa.
Os dados primitivos podem ser divididos em:
Dados numéricos;
Dados literais (ou alfanuméricos);
Página | 6
Dados numéricos: abrangem os números inteiros positivos e
negativos sem casas decimais (int):
𝒁 = {… , −3, −2, −1, 0, 1, 2, 3, … }
E reais, negativos e positivos com casas decimais (double), também conhecidos como ponto flutuante (float):
𝑹 = {… , −2.5, −2.0, −1.5, −1.0, 0.0, 1.0, 1.5, 2.0, 2.5, … }
Dados literais: são os dados utilizados para variáveis do tipo
caractere (char) e cadeia de caracteres (string). Abrangem as letras do alfabeto e alguns caracteres especiais. Abrangem também os números, porém não de forma algébrica e sim representativa. Ex. 3.1: ‘A’, ‘b’, “Olá, mundo!”, “12345”.
Dados lógicos: podem assumir somente os valores verdadeiro e
falso, também conhecidos como dados booleanos, devido à álgebra booleana criada por George Boole. São bastante interessantes em rotinas que exigem tomada de decisões.
Ex. 3.2: 1 é igual à 2? A resposta é falso.
A tabela 3.1 mostra esses tipos de dados primitivos e suas respectivas sintaxes para a linguagem C.
3.3. Tipos de operadores
Para entendermos os tipos de operadores e suas respectivas funções, vamos primeiro abordar o conceito de expressão, operador e operando.
Página | 7 Tabela 3.1 – Tipos de dados primitivos.
Tipo de dado Sintaxe na Linguagem C
Inteiro int
Real double
float
Literal string char
Lógico ---
Por exemplo, em uma operação de soma entre dois números, temos a seguinte estrutura, demonstrada na figura 3.2:
Figura 3.2 – Exemplo de expressão contendo uma adição. De posse disso, podemos então definir os tipos de operadores utilizados na linguagem C, e qual a influência deles sobre as variáveis (operandos).
Os operadores são classificados de acordo com o tipo de dado dos seus operandos e/ou o tipo resultante da sua avaliação. Eles são divididos em:
Página | 8
Operadores de atribuição;
Operadores aritméticos;
Operadores relacionais;
Operadores lógicos.
Operadores de atribuição: são utilizados para atribuir valores
às variáveis, por exemplo, queremos atribuir o valor “2” à variável do tipo inteiro “x”, dessa forma, na linguagem C utilizaremos a sintaxe descrita no Ex. 3.3:
Ex. 3.3: int x =2;
Onde o símbolo “=” é o operador de atribuição.
Operadores aritméticos: são aqueles relacionados às
operações matemáticas básicas (adição, subtração, multiplicação e divisão), também temos os operadores: resto da divisão, manutenção de sinal e inversão de sinal. A tabela 3.2 mostra os operadores aritméticos e suas respectivas sintaxes na linguagem C.
Tabela 3.2 – Tipos de operadores aritméticos.
Operador aritmético Sintaxe na Linguagem C
Adição + Subtração - Multiplicação * Divisão / Resto da divisão % Manutenção do sinal + Inversão do sinal -
Página | 9
Operadores relacionais: são os operadores responsáveis por
comparar valores entre as variáveis. Eles retornam valores lógicos (verdadeiro ou falso), porém NÃO DEVEM ser confundidos com os operadores lógicos, os quais serão descritos a seguir.
A tabela 3.3 mostra os operadores relacionais e suas respectivas sintaxes para a linguagem C.
Tabela 3.3 – Tipos de operadores relacionais.
Operador relacional Sintaxe na Linguagem C
Maior que >
Menor que <
Maior ou igual que >=
Menor ou igual que <=
Igual à ==
Diferente de !=
Operadores lógicos: são usados para combinar a avaliação de
duas ou mais variáveis. Também retornam um valor lógico, por exemplo:
Ex. 3.4: 5 é menor que 4 OU 2 é um número par?
A resposta seria verdadeiro, pois pelo menos a segunda avaliação está correta (2 é um número par). Além disso, o operador lógico utilizado foi “OU”.
A tabela 3.4 apresenta os operadores lógicos, suas respectivas operações e sintaxes para a linguagem C.
Página | 10 Tabela 3.4 – Tipos de operadores lógicos.
Operador lógico Operação Sintaxe na Linguagem C
E Conjunção &&
OU Disjunção ||
NÃO Negação !
3.4. Entrada e saída de dados
Para que os nossos códigos fiquem mais interativos, podemos usar comandos que nos permitam receber dados de usuários, processá-los e então apresentá-los de uma forma mais compreensível. Então a seguir, serão apresentados esses comandos.
Comandos de entrada: podemos receber qualquer tipo de dado
primitivo, então alguns comandos para receber cada tipo de dados são resumidos abaixo:
scanf(“%i”, &inteiro); scanf(“%d”, &inteiro); scanf(“%f”, &real); scanf(“%c”, &caractere); gets(cadeia_de_caracteres);
Os argumentos “%i”, “%d”, “%f”, “%c” são chamados de códigos de formatação, pois são responsáveis por indicar ao compilador qual o tipo de dado obtido da entrada. No caso “%i” e “%d” são para entrada de números inteiros, “%f” para números
Página | 11 reais e “%c” para entrada de um único caractere, sendo que após este comando deve-se utilizar a função getchar(), pois ao pressionar a tecla ENTER na hora de receber o caractere, o compilador entende que a mesma também é uma entrada de dado. Na função scanf() pode-se notar que após a utilização do código de formatação temos uma estrutura da seguinte forma: “&_”. O símbolo “&” acompanhado do nome de uma variável, representa o endereço onde essa variável está armazenada, então, “&inteiro” está dizendo para o compilador que o valor obtido da entrada deve ser armazenado no endereço da variável inteiro.
E na função gets(), nota-se que seu único argumento é o nome da variável que conterá a string.
Comandos de saída: para imprimirmos algum tipo de dado,
usaremos as funções abaixo: printf(“Sua frase aqui!”); printf(“% i”, inteiro);
printf(“%s”, cadeia_de_caracteres); puts(cadeia_de_caracteres);
Nota-se que podemos imprimir tanto uma string definida diretamente dentro da função printf() quanto uma string contida dentro da variável “cadeia_de_caracteres” , além disso, para imprimir um número contido no endereço de uma variável, basta apenas passar como argumentos o código de formatação e o nome da variável.
A diferença entre as funções printf() e puts() é que a segunda passa para a próxima linha após a impressão.
Página | 12
3.5. Lista de Exercícios
1) Escreva um algoritmo capaz de somar dois números inteiros e imprimir o resultado da soma.
2) Escreva um algoritmo capaz de dividir dois números inteiros, imprimir o resultado e o resto da divisão.
3) Desenvolva um algoritmo capaz de realizar a seguinte comparação: x é maior que y? E imprima o valor lógico retornado por essa expressão, onde zero seria o valor para “false” e um o valor para “true”.
4) Desenvolva um algoritmo capaz de realizar a seguinte comparação: a é maior que b OU c é um número par? E imprima o valor lógico retornado por essa expressão, onde zero seria o valor para “false” e um o valor para “true”. 5) Escreva um código capaz de receber o nome do usuário, seu
sexo, sua altura em metros e sua idade e então imprimir o seguinte resultado:
Nome: Jhonata Renary Sexo: M
Altura: 1.78 m Idade: 21 anos