Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Documentos relacionados
Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Faculdade de Computação

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Linguagem C. Prof.ª Márcia Jani Cícero

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Linguagem C (estruturas condicionais)

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

Exercícios Repetição

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

Linguagem C: Introdução

ALGORITMO I ESTRUTURA DE CONTROLE DECISÃO SE / CASO;

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

ponteiros INF Programação I Prof. Roberto Azevedo

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

ESTRUTURAS COMPOSTAS VETOR

Programação: Vetores

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

Linguagens de Programação I

Introdução a Linguagem C. Prof. Me. Hélio Esperidião

Treinamento Olimpíada Brasileira de Informática

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1

Variáveis primitivas e Controle de fluxo

Estrutura do programa

Introdução à Linguagem C

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Linguagem C: Elementos fundamentais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

ESTRUTURAS COMPOSTAS. Variáveis Compostas Unidimensionais VETOR. Baseado nos slides de Rosely Sanches e Simone Senger de Souza

Cap. 2 Expressões na linguagem C

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

Disciplina de Algoritmos e Programação

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

Introdução a Programação de Jogos

controle de fluxo - condicionais

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

4. Estruturas Fundamentais de Programação em C

Variáveis, Tipos de Dados e Operadores

Aula 12- Variáveis e valores reais

Capítulo 2 Operadores. A função scanf()

Estrutura de Seleção Múltipla Switch

Estrutura de Programas e Tipos de Dados Simples

Introdução a Programação na Linguagem C.

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

Introdução à Linguagem C Variáveis e Expressões

Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 1o. Semestre de 2017 Prof.

TÉCNICO DE INFORMÁTICA - SISTEMAS

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Estruturas de Decisão. Adaptado de Deise Saccol

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.

A Linguagem C. A forma de um programa em C

Linguagens de programação. Introdução ao C (continuação)

Introdução a Linguagem C

Programação Básica. Estrutura de um algoritmo

Linguagem C Princípios Básicos (parte 1)

5 Comando de Seleção Simples e Composta

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010

INTRODUÇÃO A LINGUAGEM C

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

MC102 Algoritmos e Programação de Computadores

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

1) Operadores de auto incremento ++ e auto decremento --

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Escreva a função e_caracter que verifica se um determinado caracter é um numero ou não. Escreva um Programa de teste da função.

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Elementos de programação em C

Revisão C++ - Parte 1

Linguagem C (repetição)

Introdução à Linguagem C++

Vetores. e o programa deverá ler os valores separadamente:

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Conceitos Básicos Linguagem C

Linguagem C: funções e ponteiros. Prof. Críston Algoritmos e Programação

Diagramas Sintáticos

Transcrição:

Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1

Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro x,y int main(int argc, char ** argv) { int x, y; Escrever Mostrando algo\n Escrever x =, x, \n Escrever y =, y, \n Escrever x, +, y, =, x + y, \n Fim puts( Mostrando algo ); printf( x = %d\n, x); printf( y = %d\n, y); printf( %d + %d = %d\n, x, y, x+y); 2

Entrada e saída A escrita na saída padrão pode então ser feita desta forma: Escrever Mostrando algo\n puts( Mostrando algo ); puts( algum texto ): serve para mostrar um texto, sem misturar com variáveis ou valores de outros tipos. Note que puts já adiciona uma quebra de linha ao final do texto apresentado (i.e: puts adiciona automaticamente um \n depois do texto). 3

Entrada e saída ou desta: Escrever x =, x, \n Escrever y =, y, \n Escrever x, +, y, =, x + y, \n printf( x = %d\n, x); printf( y = %d\n, y); printf( %d + %d = %d\n, x, y, x+y); printf( formato, variáveis): serve para mostrar um texto de acordo com o formato, que pode ser composto a partir dos conteúdos de variáveis ou valores de outros tipos. Note que printf não adiciona automaticamente uma quebra de linha ao final do texto apresentado. 4

Entrada e saída O formato da saída a ser mostrada por printf usa sequências especiais para indicar o tipo de dado a ser mostrado: %d Número inteiro %f Número real (ponto flutuante) %c Um caractere %x Um inteiro como hexadecimal %s Uma string (uma variável de texto) 5

Entrada e saída Exemplos de formatos do printf: Inicio Inteiro x 10 Real pi 3.1416 Caractere c X Texto palavra Teste Escrever x =, x, \n Escrever pi =, pi, \n Escrever c =, c, \n Escrever palavra =, palavra, \n Fim int main(int argc, char ** argv) { int x = 10; float pi = 3.1416; char c = 'X'; Char * palavra = Teste ; printf( x = %d (ou %x em hexa)\n, x, x); printf( pi = %f\n, pi); printf( c = %c\n, c); printf( palavra = %s\n, palavra); 6

Entrada e saída: exercício Modifique o programa C abaixo para que mostre uma data formatada da seguinte forma: dia/mes/ano hora:minuto:segundo int main(int argc, char ** argv) { int hora = 9, minuto = 30, segundo = 5; int dia = 14, mês = 10, ano = 2009; 7

Entrada e saída: lendo do teclado Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro x int main(int argc, char ** argv) { int x; Escrever Digite um número: Ler x Escrever Voce digitou, x, \n Fim printf( Digite um número ); scanf( %d, &x); printf( Voce digitou %d\n, x); 8

Entrada e saída A leitura do teclado pode então ser feita desta forma: Ler x scanf( %d, &x); scanf( formato, variáveis): lê um ou mais valores do teclado. Os valores devem ser dos tipos especificados no formato. As mesmas regras do formato usado no printf se aplicam ao scanf. Obs: no scanf deve-se prefixar com & os nomes de variáveis! 9

Entrada e saída Exemplos de formatos do scanf: Inicio Inteiro x Real y Caractere c Texto palavra Escrever digite um inteiro, um real, um caractere e um texto:\n\n Ler x, y, c, palavra Fim int main(int argc, char ** argv) { int x; float y; char c; char palavra[100]; puts( digite um inteiro, um real, um caractere e um texto:\n ); scanf( %d %f %c %s, &x, &y, &c, palavra); 10

Entrada e saída Repare no caso da variável de texto (chamada de string na linguagem C): char palavra[100]; scanf( %s, palavra); Ao contrário dos demais tipos de variáveis, não foi usado o prefixo & antes do nome da variável string no scanf. A razão disto será explicada (bem) mais pra frente no curso! 11

Entrada e saída: exercicio Modifique o programa que mostra a data formatada, de forma que leia os valores pelo teclado e depois mostre a data. 12

Variáveis na linguagem C: declaração Variáveis são declaradas com o tipo e uma lista de um ou mais identificadores: int main(int argc, char ** argv) { int x, y; Variáveis podem ser inicializadas na própria declaração: int main(int argc, char ** argv) { int x = 0; 13

Variáveis na linguagem C: tipos de variáveis Existem tipos nativos de dados: int inteiro (-2 31 a 2 31-1) short inteiro curto (-2 15 a 2 15-1) long inteiro longo (-2 63 a 2 63-1) float double char ponto flutuante (real) 6 dígitos de precisão, expoente até 38 ponto flutuante de dupla precisão 10 dígitos de precisão, expoente até 308 caractere (na verdade, um inteiro de 1 byte, com valores entre -128 e 127) 14

Variáveis na linguagem C: tipos de variáveis Os tipos numéricos podem ser também não-sinalizados: unsigned int unsigned short unsigned long unsigned float inteiro não-sinalizado inteiro curto não-sinalizado inteiro longo não-sinalizado ponto flutuante não-sinalizado unsigned double ponto flutuante dupla precisão não-sinalizado unsigned char caractere não-sinalizado 15

Variáveis na linguagem C: tipos de variáveis Não existe o tipo booleano! Qualquer valor diferente de 0 (zero) equivale a VERDADEIRO O valor 0 (zero) equivale a FALSO Uma expressão qualquer (booleana ou não) é VERDADEIRA se resultar em valor diferente de 0 int ok; ok = (5 > 10); // falso, assim ok 0 ok = (10 > 5); // verdadeiro, assim ok 1 16

Variáveis na linguagem C: expressões com variáveis Expressões aritméticas resultam em valores de tipo inteiro ou ponto flutuante, dependendo das variáveis envolvidas: int x,y float f; x = 5; y = x / 2; // expressão x/2 resulta em um inteiro f = x / 2; printf( y=%d\n, y); // vai mostrar 2 printf( f=%f\n, f); // vai mostrar 2.000000 17

Variáveis na linguagem C: expressões com variáveis Expressões aritméticas resultam em valores de tipo inteiro ou ponto flutuante, dependendo das variáveis envolvidas: int y float f, g; g = 5; y = g / 2; // expressão g/2 resulta em um float f = g / 2; printf( y=%d\n, y); // vai mostrar 2 printf( f=%f\n, f); // vai mostrar 2.500000 18

Variáveis na linguagem C: expressões com variáveis Conclusão: resultado de uma expressão aritmética é do mesmo tipo da variável de maior tamanho: char < short < int < long < float < double No entanto, ao atribuir o resultado a uma variável este poderá sofrer uma conversão: float f; int x; f = 6.5; x = f; // após esta atribuição, x terá o valor 6 19

Variáveis na linguagem C: exemplo int main(int argc, char ** argv) { int x, y; float f; unsigned int u; x = 5; y = 3; printf( %d - %d = %d\n, x, y, x-y); printf( %d - %d = %d\n, y, x, y-x); u = y x; printf( %d - %d = %d\n, y, x, u); f = x / y; printf( %d / %d = %d\n, x, y, x/y); printf( %d / %d = %f\n, x, y, f); 20

Variáveis na linguagem C: exercício Usando apenas variáveis numéricas apropriadas, faça um programa que leia um número e mostre sua parte inteira e sua parte decimal. Escreva um programa que calcule o valor deste polinômio: 3 x 3 5 x 2 6, x R sendo que o valor de x deve ser lido do teclado. Escreva um programa que leia uma letra do teclado, e mostre seu código ASCII na tela. Obs: código ASCII é um código numérico padrão e amplamente utilizado que identifica caracteres veja próxima transparência! 21

Tabela ASCII U 22

Estruturas de decisão O equivalente à estrutura se... então: if (condição) comando; if (condição) { // comandos else { //comandos ou if (condição) { // comandos O equivalente à estrutura se... então... senão: 23

Estruturas de decisão: if else Exemplo comparado ao Portugol: Inicio Inteiro x int main() { int x; Ler x Se x < 0 entao Escrever x, é negativo Senao Se x > 0 entao Escrever x, é positivo Senao Escrever x, é zero Fimse Fimse Fim scanf( %d, &x); if (x < 0) { printf( %d é negativo\n, x); else { if (x > 0) { printf( %d é positivo\n, x); else { printf( %d é zero\n, x); 24

Estruturas de decisão Exemplo: int main(int argc, char ** argv) { int x, y; scanf( %d, &x); scanf( %d, &y); if (x > y) printf( %d é maior que %d\n, x, y); else { if (x < y) printf( %d é menor que %d\n, x, y); else printf( %d é igual a %d\n, x, y); 25

Estruturas de decisão Condições: operadores relacionais (de comparação): == igualdade!= desigualdade > maior que >= maior ou igual que < menor que <= menor ou igual que 26

Estruturas de decisão Condições: operadores de comparação: int main(int argc, char ** argv) { int x, y; scanf( %d, &x); scanf( %d, &y); if (x == y) printf( %d igual a %d\n, x, y); if (x!= y) printf( %d diferente de %d\n, x, y); if (x > y) printf( %d maior que %d\n, x, y); if (x >= y) printf( %d maior ou igual a %d\n, x, y); if (x < y) printf( %d menor que %d\n, x, y); if (x <= y) printf( %d menor ou igual a %d\n, x, y); 27

Estruturas de decisão Condições compostas: operadores lógicos:! NÃO && E OU 28

Estruturas de decisão Condições: operadores lógicos: int main(int argc, char ** argv) { int x, y; int min = 0, max = 10; scanf( %d, &x); if ((x >= min) && (x <= max)) printf( %d dentro do intervalo\n, x); if ((x < min) (x > max)) printf( %d fora do intervalo\n, x); If (! ((x < min) (x > max))) printf( %d dentro do intervalo\n, x); 29

Estruturas de decisão: exercício Faça um programa que leia quatro números inteiros do teclado, e informe se ao menos dois deles são pares. Faça um programa que leia três números do teclado e informe se existem ao menos dois números iguais. 30

Estruturas de decisão: switch case switch.. case equivale a escolhe.. caso do Portugol: Escolhe x Caso 1: Escrever x vale 1 Caso 2: Escrever x vale 2 Defeito: Escrever x fora do que conheço! fimescolhe switch (x) { case 1: puts( x vale 1 ); break; case 2: puts( x vale 2 ); break; default: puts( x fora do que conheço! ); break; 31

Estruturas de decisão: switch case Detalhes sobre o uso do switch case: switch (x) { case 1: puts( x vale 1 ); break; case 2: puts( x vale 2 ); break; default: puts( x fora do que conheço! ); break; Não precisa envolver com chaves Finaliza a execução das sentenças do case. Se for omitido, as sentenças do próximo case serão executadas! 32

Estruturas de decisão: switch case Escolhendo múltiplos valores: Escolhe x Caso 1,3,5: Escrever x, é ímpar Caso 0,2,4: Escrever x, é par Defeito: Escrever x, fora do que conheço! fimescolhe switch (x) { case 1: case 3: case 5: printf( %d é ímpar\n, x); break; case 0: case 2: case 4: printf( %d é par\n, x); break; default: printf( %d fora do que conheço!\n, x); 33

Estruturas de decisão: exercício Faça um programa que informe quantos dias tem o mês informado pelo teclado. Obs: o mês deve ser informado por seu número, sendo 1 = janeiro. Use switch case. 34

Funções na linguagem C Funções são construções úteis para modularizar programas Sequências de instruções usadas em diferentes partes de um programa, ou mesmo em diferentes programas Algoritmos implementados como funções Organizar o programa, tornando-o claro e legível int quadrado(int x) { int y; y = x * x; return y; Função para calcular o quadrado de um número inteiro 35

Funções na linguagem C Uso de funções int quadrado(int x) { int y; y = x * x; return y; int main(int argc, char ** argv) { printf( Quadrado de 2 é %d\n, quadrado(2)); return 0; Uso da função quadrado 36

Funções na linguagem C: declaração Tipo do valor a ser retornado Nome da função Parâmetros { int quadrado(int x) int y; y = x * x; Declaração de variáveis locais return y; Devolução de valor (encerra a função) 37

Funções na linguagem C: exercício Faça um programa que leia 2 números inteiros pelo teclado, e calcule a raiz quadrada da soma dos quadrados desses números. O resultado deve ser mostrado na tela. Use funções para partes do programa que sejam repetidas. 38

Variáveis na linguagem C: locais X globais Variáveis locais são declaradas no início de blocos de comandos, ou na lista de parâmetros de uma função int quadrado(int x) { int y; y = x * x; return y; Variáveis locais existem somente dentro das funções onde foram declaradas 39

Variáveis na linguagem C: locais X globais Variáveis globais são declaradas fora de funções int g; int quadrado(int x) { int y; y = x * x; return y; Variáveis globais são visíveis por todas as funções No entanto, uma variável global fica escondida em uma função se ali existir uma variável local de mesmo nome 40

Variáveis na linguagem C: locais X globais Deve-se evitar ao máximo o uso de variáveis globais Uso indiscriminado pode gerar um programa confuso e favorecer erros O melhor é declarar variáveis no escopo em que são necessárias Escopo: região do programa onde existe uma variável Na verdade, região onde declarações em geral existem 41