Convertendo Algoritmos para a Linguagem C



Documentos relacionados
Conceitos básicos da linguagem C

5 Apresentando a linguagem C

Introdução a Computação

Programando em C++ Histórico da Linguagem C

Definição de Programas de Computadores e Linguagem de Programação de Comutadores

Variáveis e Comandos de Atribuição

INTRODUÇÃO À LINGUAGEM C++

Programação científica C++

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

Linguagem de Programação

Resumo da Introdução de Prática de Programação com C. A Linguagem C

7. Estrutura de Decisão

LINGUAGEM C. Estrutura básica de um programa

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Algoritmo e Técnica de Programação - Linguagem C

Programação: Estruturas de seleção

compreender a importância de cada estrutura de controle disponível na Linguagem C;

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Introdução à Linguagem C

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Algoritmos e Programação

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

O COMPUTADOR. Introdução à Computação

Curso de Linguagem C

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

9.1.2 Laços Controlados por Entrada: Contador

Apresentar os conceitos básicos e as estruturas de linguagem relacionadas à tomada de decisão ofertadas pela linguagem C, tais como:

Algoritmos e Programação Estruturada

9 Comandos condicionais

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

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

Linguagens de Programação

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Estrutura de Dados. Prof. Gustavo Willam Pereira. Créditos: Profa. Juliana Pinheiro Campos

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

Estruturas de repetição (Ciclos)

José Romildo Malaquias

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

Linguagem de Programação I

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

A linguagem C oferece quatro estruturas de decisão: if, if-else, switch e o operador condicional.

LINGUAGEM C UMA INTRODUÇÃO

Conceitos Básicos de C

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Sumário Algoritmos e Estrutura de Dados Repetição

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

Programação Estruturada I

ATENÇÃO!!! Rui Morgado - TLP 2

Técnicas de Programação I

Plano de Aula. if(condição) { bloco de comandos; } else { bloco de comandos2; }

Algoritmos e Técnicas de

Comandos de repetição while

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Universidade Federal de Rondônia Técnicas de Desenvolvimento de Programas Lista 4

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

Capítulo 2: Introdução à Linguagem C

INF 1005 Programação I

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

LINGUAGEM C UMA INTRODUÇÃO

Introdução a Linguagem C

Estrutura switch if-else switch switch switch if-else-if switch switch case default break switch switch break Observações: case

Italo Valcy

Elementos de programação em C

Linguagem de Programação I. Aula 05 Linguagem C

Introdução a Algoritmos Parte 04

20 Caracteres - Tipo char

Apresentação. Rio de Janeiro, 19 de fevereiro de 2002 Waldemar Celes

Programas simples em C

LTP-IV. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre

Estrutura Condicional C++

valor_dolar = converte(valor_compra, taxa_dolar); valor_final = converte(valor_dolar, taxa_real) * ;

Resumo da Matéria de Linguagem de Programação. Linguagem C

O Processo de Programação

insfcanceof new public switch transient while byte continue extends for int null

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

INTRODUÇÃO À LINGUAGEM C/C++

Laboratório de Programação. Prof. Oscar Luiz Monteiro de Farias

Algoritmos e Programa o Departamento de Inform tica

10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação

JavaScript (ou JScript)

INF 1007 Programação II

Estruturas de Dados. Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

Introdução à Programação

Estruturas de entrada e saída

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Curso Java Starter. 1

Estrutura Condicional em Java

Estruturas de Controle em PHP

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

Estruturas de Repetição

Transcrição:

onvertendo Algoritmos para a Linguagem Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan O objetivo deste texto é mostrar alguns programas em, dando uma breve descrição de seu funcionamento para que o leitor possa se acostumar com a forma dos programas nessa linguagem. A explicação sobre o funcionamento e uso de cada recurso da linguagem será visto ao longo do curso. O é uma linguagem de alto nível de uso genérico desenvolvida por programadores para ser usada por programadores. Em outras palavras: não é uma linguagem para uso didático e sim para trabalhar. Ao longo do tempo, grandes sistemas têm sido desenvolvidos em como, por exemplo, o UNIX, o Windows e o Linux. Essa linguagem foi também usada como base para desenvolver novas linguagens, entre elas a linguagem ++, Java. A primeira versão de foi criada por Dennis Ritchie em 1972 nos laboratórios Bell para ser incluído como um dos softwares a serem distribuídos juntamente com o sistema operacional Unix do computador PDP-11, na equipe coordenada por Ken Thompson. Alguns marcos históricos: 1969 Desenvolvimento do UNIX (em um computador PDP 7 em linguagem Assembly). 1969 Desenvolvimento da linguagem BPL (muito próxima do Assembly). 1970 Denis Ritchie cria a linguagem B a partir do BPL nos laboratórios da Bell Telephones. 1971 Primeiro desenvolvimento da linguagem, sucessora do B (o é a 2ª letra de BPL). 1973 O sistema operacional UNIX é reescrito em linguagem. 1978 Primeira edição do livro The Programming Language, Kernighan & Ritchie. 1980 A linguagem é padronizada pelo American National Standard Institute: surge o ANSI. 1992 Surge o ++, uma evolução da linguagem incorporando conceitos da orientação a objetos. Algoritmos e Programação 1 Francisco Rapchan

1. Faça um programa que leia dois números que o usuário do computador digitará no teclado, some-os e mostre o resultado na tela do computador. algoritmo "Soma de dois números" var A, B, Soma: inteiro inicio Leia (A) Leia (B) Soma <- A + B Escreva (Soma) Fimalgoritmo int main() int A, B, Soma; scanf ("%d",&a); scanf ("%d",&b); Soma = A + B; printf ("Soma: %d \n", Soma); return (0) Algumas observações. - Nas linguagens reais como Pascal e são necessárias algumas bibliotecas para que o código executável possa ser executado corretamente. No caso do precisaremos da biblioteca stdio.h que contém informações sobre as funções de leitura do teclado (scanf) e de escrita no vídeo (printf). Para incluir estas bibliotecas, em usamos #include. - Observe que ao final de cada linha do programa há um ponto-e-vírgula (;). - Em, main( ) representa o programa principal que inicia com e termina com. Na verdade main ( ) é uma função que retorna um valor inteiro. - É importante notar que em letra maiúscula e letra minúscula são diferentes. Assim, uma variável chamada Soma é diferente de outra chamada de soma. - O sinal de atribuição em é o igual =. Para indicar o igual em uma decisão usamos ==. - A função printf é usada em para escrever dados na tela. - Em, o parêntese equivale ao início de um bloco de comandos e equivale ao fim de um bloco de comandos. - A função main do é a primeira a ser executada pelo programa. Equivale ao programa principal em outras linguagens. Todo programa deve ter uma única função main e ela é sempre do tipo int. Ao final da função main devemos ter um return (0) que indica ao sistema operacional que o programa terminou bem. - Tipos em Tipo Entrada e Saída Descrição int %i ou %d inteiro decimal float %f Real (ponto flutuante) char %c caracter simples %s string Algoritmos e Programação 2 Francisco Rapchan

2. Faça um programa que leia dois números e mostre se são iguais. Se não forem iguais, mostre o maior. ALGORITMO "Mostra o maior" Var numero_um, numero_dois: real inicio Leia (numero_um) Leia (numero_dois) se numero_um = numero_dois entao escreva ("São iguais") senao Se numero_um > numero_dois entao escreva (numero_um) senao escreva (numero_dois) fimse fimse fimalgoritmo int main() float numero_um, numero_dois; scanf ("%f",&numero_um); scanf ("%f",&numero_dois); if (numero_um == numero_dois) printf ("Sao iguais"); if (numero_um > numero_dois) printf ("O maior: %f", numero_um); printf ("O maior: %f", numero_dois); A instrução if assume em as duas formas básicas: if (expressão) instrução; ou: if (expressão) instrução_1; instrução_2; Em, os comandos internos à cada estrutura deve começar e terminar com chaves. Assim, para o comando IF: if (<expressão-booleana>) comando1;... comandon; comando1;... comandon; aso, dentro do comando if, haja apenas um comando, então não é necessário usar chaves. Exemplo: if (numero_um == numero_dois) printf ("Sao iguais"); if (numero_um > numero_dois) printf ("O maior: %f", numero_um); printf ("Maior: %f", numero_dois); Algoritmos e Programação 3 Francisco Rapchan

3. Faça um algoritmo que mostre todos os números de 1 até 5. Algoritmo "Números" Var numero : inteiro inicio numero <- 1; Enquanto numero <= 5 faca Escreva (numero) numero <- numero + 1 fimenquanto Fimalgoritmo /* Programa números */ int main() int numero; /* contador */ numero = 1; // iniciando a variável while (numero <= 5) printf ("Numero: %i \n",numero); numero = numero + 1; // fim do programa - Os textos entre /* */ e os textos após // são comentários em. Portanto há duas formas de delimitar (indicar) os comentários em : usando /* */ ou //. A forma // também é usada em ++ (versão da linguagem que dá suporte à orientação a objetos. - O \n dentro do printf indica que deve pular para a próxima linha depois de escrever o número. Algoritmos e Programação 4 Francisco Rapchan

4. Faça um algoritmo que mostre a soma dos 10 primeiros números inteiros. algoritmo "Soma dez primeiros números" var soma, N: inteiro inicio soma <- 0 // Soma dos 10 primeiros números int main() int N, soma; soma = 0; para N de 1 ate 10 faca soma <- soma + N fimpara escreva (soma) fimalgoritmo for (N = 1; N <= 10; N = N + 1) soma = soma + N; printf ("Total: %i \n",soma); A forma geral do laço for é a seguinte: for (iniciação do contador ; condição de parada; incremento) comandos omo é muito comum o incremento de um em um, em, expressões de incremento como N = N + 1 podem ser substituídas por N++. for (N = 1; N <= 10; N++) Pode existir mais de uma expressão de iniciação e de incremento na estrutura for. Estas expressões devem ser separadas por vírgula (,). Mas atenção: não pode haver mais de uma expressão de condição. Exemplo: for(i=0, j=10; i<10; i++, j--) Também não é necessário especificar todos os parâmetros do laço for. Por exemplo, no trecho abaixo, a ausência de condições de iniciação, parada e incremento, causarão repetição infinita (loop infinito). for(;;) printf( Este loop rodará eternamente!\n ); Algoritmos e Programação 5 Francisco Rapchan

5. Leia números e some-os até o usuário digitar zero. Ao final mostre a soma dos números lidos. Use repita-até. algoritmo "semnome" var N, soma : real Inicio soma <- 0 repita Leia (N) soma <- soma + N ate N = 0 escreva (soma) fimalgoritmo. // Soma números até digitar zero int main() float N, soma; soma = 0; do scanf ("%f", &N); soma = soma + N; while (N!= 0); printf ("Total: %f",soma); O do while é uma estrutura básica de repetição condicional. Permite a execução de um bloco de instruções repetidamente. Sua sintaxe é a seguinte: do bloco while(condição); onde: condição é uma expressão lógica ou numérica. bloco é um conjunto de instruções. Esta estrutura faz com que o bloco de instruções seja executado pelo menos uma vez. Após a execução do bloco, a condição é avaliada. Se a condição é verdadeira o bloco é executado outra vez, caso contrário a repetição é terminada. O fluxograma desta estrutura é mostrado abaixo. bloco condição? V F Algoritmos e Programação 6 Francisco Rapchan

6. Faça um programa que leia o número do mês (de 1 até 12) e mostre quantos dias ele tem. int num; printf ("Digite um numero: "); scanf ("%i",&num); /* pega um caracter do teclado */ switch (num) case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf ("\n\n Mes com 31 dias.\n"); case 2: printf ("\n\n Mes com 28 ou 29 dias.\n"); case 4: case 6: case 9: case 11: printf ("\n\n Mes com 30 dias.\n"); default: printf ("\n\n Digitou mes errado.\n"); Observe que em os comandos podem estar todos em uma mesma linha (o ponto e vírgula ; é quem define o final do comando). Assim, mesmo programa poderia ser escrito de uma forma mais compacta: int num; printf ("Digite um numero: "); scanf ("%i",&num); /* pega um caracter do teclado */ switch (num) case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf ("\n\n Mes com 31 dias.\n"); case 2: printf ("\n\n Mes com 28 ou 29 dias.\n"); case 4: case 6: case 9: case 11: printf ("\n\n Mes com 30 dias.\n"); default: printf ("\n\n Digitou mes errado.\n"); Algoritmos e Programação 7 Francisco Rapchan

Exercícios 1. Faça um programa que leia um número e mostre se é primo ou não. int n, c, qtde; scanf ("%i",&n); qtde = 0; for (c=1; c<=n; c++) if ((n % c) == 0) qtde = qtde + 1; if (qtde > 2) printf ("Não e primo\n"); printf ("E primo\n"); 2. Faça um programa que leia um número e mostre a soma dos seus divisores. int n, c, soma; scanf ("%i",&n); soma = 0; for (c=1; c<=n; c++) if ((n % c) == 0) soma = soma + c; printf ("Soma dos divisores de %i = %i\n",n,soma); 3. Leia o valor de N salários e mostre quantos são acima de 1000,00 e quantos são abaixo de 400,00. int n, c, acima, abaixo; float salario; scanf ("%i",&n); acima = abaixo = 0; // Observe!!! Esta atribuindo zero a todos. for (c=1; c<=n; c++) printf ("Salario %i: ",c); scanf("%f",&salario); if (salario > 1000.00) acima++; if (salario < 400.00) abaixo++; printf ("Total: %i Acima de 1000,00 e %i abaixo de 400,00\n",acima,abaixo); Algoritmos e Programação 8 Francisco Rapchan

4. Leia N números e mostre: o maior número lido; o menor número lido; a média dos números lidos. int qtde, c; float num, maior, menor, soma; printf ("Quantidade de números: "); scanf("%i",&qtde); printf ("Numero 1: "); scanf("%f",&num); soma = maior = menor = num; for (c=2; c<=qtde; c++) printf ("Numero %i: ",c); scanf("%f",&num); soma += num; // Observe!!! Equivale a soma = soma + num; if (num > maior) maior = num; if (num < menor) menor = num; printf ("Maior: %f\nmenor: %f\nsoma: %f\n",maior, menor, soma); 5. Some os números que o usuário digitou até que ele digite zero. Ao final mostre: quantidade de números digitados; a soma e a média dos números. int qtde, c; float num, soma; soma = qtde = 0; num = 1; while (num!= 0) qtde++; printf ("Numero %i: ",qtde); scanf("%f",&num); soma += num; printf ("Quantidade: %i\nsoma: %f\nmedia: %f\n",qtde-1, soma, soma/(qtde-1)); 6. Leia um número e mostre a raiz quadrada dele. Use a seguinte relação matemática: b a = a 1/ b = ( 1/ b log (a) ). #include <math.h> float num, raiz; printf ("Numero: "); scanf("%f",&num); //essa biblioteca é necessária para as funções exp() e log() raiz = exp(1.0 / 2 * log(num)); (1/2 log(num)) //ou seja: raiz (num) = printf ("%f\n",raiz); Observação: Ao compilar com gcc no Linux é necessário indicar o uso da biblioteca matemática: $ gcc teste.c o teste -lm Algoritmos e Programação 9 Francisco Rapchan