1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 E-books PCNA Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 APRESENTANDO A LINGUAGEM C Página 1
2 TECNOLOGIA ELEMENTAR CAPÍTULO 3 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 3.5. Lista de Exercícios -------------------------------------------- 12 Página 2
3 TECNOLOGIA ELEMENTAR CAPÍTULO 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 3
4 TECNOLOGIA ELEMENTAR CAPÍTULO 3 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 4
5 TECNOLOGIA ELEMENTAR CAPÍTULO 3 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); Dados lógicos. Página 5
6 TECNOLOGIA ELEMENTAR CAPÍTULO 3 Dados numéricos: abrangem os números inteiros positivos e negativos sem casas decimais (int): Z = {, 3, 2, 1, 0, 1, 2, 3, } E reais, negativos e positivos com casas decimais (double), também conhecidos como ponto flutuante (float): R = {, 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 6
7 TECNOLOGIA ELEMENTAR CAPÍTULO 3 Tabela 3.1 Tipos de dados primitivos. Tipo de dado Sintaxe na Linguagem C Inteiro int Real double float Literal char string 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 7
8 TECNOLOGIA ELEMENTAR CAPÍTULO 3 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 8
9 TECNOLOGIA ELEMENTAR CAPÍTULO 3 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 9
10 TECNOLOGIA ELEMENTAR CAPÍTULO 3 Operador lógico Tabela 3.4 Tipos de operadores lógicos. 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 10
11 TECNOLOGIA ELEMENTAR CAPÍTULO 3 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 11
12 TECNOLOGIA ELEMENTAR CAPÍTULO 3 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 Página 12