Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


EXERCICIOS PARA PROGRAMAÇÃO EM C, Exercícios de Programação em C

EXERCICIOS DE LINGUAGEM C- ESTRUTURA CONDICIONAL- SEQUENCIAL- REPETITIVAS E VETORES

Tipologia: Exercícios

2019

Compartilhado em 18/08/2022

flavio-junior-77
flavio-junior-77 🇧🇷

2 documentos

1 / 18

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Curso Completo de Algoritmos e Lógica de Programação - Prof. Nelio Alves - educandoweb.com.br
Curso Completo de Algoritmos e Lógica de Programação
educandoweb.com.br
Prof. Dr. Nelio Alves
Capítulo: Linguagem C
Atenção
Este material foi elaborado para alunos do curso Algoritmos e Lógica de Programação do
professor Nelio Alves.
A didática do conteúdo desde material está adaptada para quem já fez a parte do referido curso
sobre construção de algoritmos na linguagem do VisualG.
Para mais informações:
educandoweb.com.br
Instalação das ferramentas
Compilador GCC (para Windows: MinGW)
http://www.mingw.org/
Variável de ambiente Path: C:\MinGW\bin
IDE : Code Blocks
http://www.codeblocks.org/downloads
- Download the binary release
- Escolher pacote codeblocks-xx.xx-setup.exe
Primeiro programa em C
VisualG
C
Algoritmo "primeiro"
Var
Inicio
escreval("Ola mundo!")
Fimalgoritmo
#include <stdio.h>
int main() {
printf("Ola mundo!\n");
return 0;
}
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Pré-visualização parcial do texto

Baixe EXERCICIOS PARA PROGRAMAÇÃO EM C e outras Exercícios em PDF para Programação em C, somente na Docsity!

Curso Completo de Algoritmos e Lógica de Programação

educandoweb.com.br

Prof. Dr. Nelio Alves

Capítulo: Linguagem C

Atenção

Este material foi elaborado para alunos do curso Algoritmos e Lógica de Programação do

professor Nelio Alves.

A didática do conteúdo desde material está adaptada para quem já fez a parte do referido curso

sobre construção de algoritmos na linguagem do VisualG.

Para mais informações:

educandoweb.com.br

Instalação das ferramentas

Compilador GCC (para Windows: MinGW)

http://www.mingw.org/

Variável de ambiente Path: C:\MinGW\bin

IDE : Code Blocks

http://www.codeblocks.org/downloads

  • Download the binary release
  • Escolher pacote codeblocks-xx.xx-setup.exe

Primeiro programa em C

VisualG C Algoritmo "primeiro" Var Inicio escreval("Ola mundo!") Fimalgoritmo #include <stdio.h> int main() { printf("Ola mundo!\n"); return 0 ; }

TIPOS DE DADOS E VARIÁVEIS

Significado Tipo VisualG Tipo C Valor padrão Observação

número inteiro inteiro int não atribuído (lixo de memória)

int: −32767 a 32767

long int: -2147483648 a 2147483647 long long int: −9223372036854775807 a 9223372036854775807

número de

ponto flutuante

real double não atribuído (lixo de memória)

float: precisão simples

double: precisão dupla

um único

caractere

caractere char não atribuído (lixo de memória)

Na linguagem C, para se representar um único caractere usa-se o

tipo char. Valores literais devem ter aspas simples. Exemplo: 'F'

texto caractere char[ ] não atribuído (lixo de memória)

Na linguagem C, para se representar um texto, usa-se um vetor de

char. Valores literais devem ter aspas duplas. Exemplo: "Maria"

valor lógico logico int não atribuído (lixo de memória)

Na linguagem C, o valor falso é representado pelo número 0, e o

valor verdadeiro é representado por um número diferente de 0.

Lista completa de tipos de dados:

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf (OFICIAL)

https://pt.wikibooks.org/wiki/Programar_em_C/Tipos_de_dados

https://en.wikipedia.org/wiki/C_data_types

OPERADORES EM C

Operadores aritméticos

Operador Significado

  • adição
  • subtração
  • multiplicação / divisão % resto da divisão ("mod")

Operadores comparativos

Operador Significado

< menor

maior <= menor ou igual = maior ou igual == igual != diferente

Operadores lógicos

Operador Significado

&& e || ou ! não

SAÍDA DE DADOS EM C

Comando no VisualG Comando em C Biblioteca escreva / escreval (^) printf #include <stdio.h> Tipo Placeholder de formatação int (inteiro 16 bits) (^) %d ou %i long int (inteiro 32 bits) (^) %li long long int (inteiro 64 bits) (^) %lli float (real precisão simples) (^) %f double (real precisão dupla) (^) %lf char (um único caractere) (^) %c char[ ] (texto) (^) %s

PROCESSAMENTO DE DADOS / CASTING EM C

Exemplo VisualG Exemplo C Resultado na tela x, y : inteiro x <- 5 y <- 2 * x escreval(x) escreval(y) int x, y; x = 5 ; y = 2 * x; printf("%d\n", x); printf("%d\n", y);

x : inteiro y : real x <- 5 y <- 2 * x escreval(x) escreval(y) int x; double y; x = 5 ; y = 2 * x; printf("%d\n", x); printf("%.1lf\n", y);

b1, b2, h, area : real b1 <- 6. b2 <- 8. h <- 5. area <- (b1 + b2) / 2.0 * h; escreval(area) double b1, b2, h, area; b1 = 6.0; b2 = 8.0; h = 5.0; area = (b1 + b2) / 2.0 * h; printf("%lf\n", area);

a, b, resultado : inteiro a <- 5 b <- 2 resultado <- a \ b escreval(resultado) int a, b, resultado; a = 5 ; b = 2 ; resultado = a / b; printf("%d\n", resultado);

a : real b : inteiro a <- 5. b <- Int(a) escreval(b) double a; int b; a = 5.0; b = (int) a; printf("%d\n", b);

ENTRADA DE DADOS EM C

Comando no VisualG Comando em C Biblioteca leia (^) scanf (para ler dados de tipos básicos) fgets (para ler texto até a quebra de linha) #include <stdio.h> #include <string.h> Tipo Placeholder de formatação int (inteiro 16 ou 32 bits) %d ou %i long int (inteiro 32 bits) %li long long int (inteiro 64 bits) %lli float (real precisão simples) %f double (real precisão dupla) %lf char (um único caractere) %c Se houver uma quebra de linha pendente na entrada padrão, é preciso limpar antes: fseek(stdin,0,SEEK_END); char[ ] (texto) %s %s só funciona para um texto contíguo Para ler até o fim da linha, use: fgets

  • Se houver uma quebra de linha pendente na entrada padrão, é preciso limpar a entrada antes.

ENTRADA DE DADOS EM C

Exemplo VisualG Exemplo C Algoritmo "teste_entrada" Var salario1, salario2 : real nome1, nome2 : caractere idade : inteiro sexo : caractere Inicio escreva("Nome da primeira pessoa: ") leia(nome1) escreva("Salario da primeira pessoa: ") leia(salario1) escreva("Nome da segunda pessoa: ") leia(nome2) escreva("Salario da segunda pessoa: ") leia(salario2) escreva("Digite uma idade: ") leia(idade) escreva("Digite um sexo (F/M): ") leia(sexo) escreval("Nome 1: ", nome1) escreval("Salario 1: ", salario1:4:2) escreval("Nome 2: ", nome2) escreval("Salario 2: ", salario2:4:2) escreval("Idade: ", idade) escreval("Sexo: ", sexo) Fimalgoritmo #include <stdio.h> #include <string.h> void limpar_entrada() { char c; while ((c = getchar()) != '\n' && c != EOF) {} } void ler_texto(char *buffer, int length) { fgets(buffer, length, stdin); strtok(buffer, "\n"); } int main() { double salario1, salario2; char nome1[ 50 ], nome2[ 50 ]; int idade; char sexo; printf("Nome da primeira pessoa: "); ler_texto(nome1, 50 ); printf("Salario da primeira pessoa: "); scanf("%lf", &salario1); printf("Nome da segunda pessoa: "); limpar_entrada(); ler_texto(nome2, 50 ); printf("Salario da segunda pessoa: "); scanf("%lf", &salario2); printf("Digite uma idade: "); scanf("%d", &idade); printf("Digite um sexo (F/M): "); limpar_entrada(); scanf("%c", &sexo); printf("Nome 1: %s\n", nome1); printf("Salario 1: %.2lf\n", salario1); printf("Nome 2: %s\n", nome2); printf("Salario 2: %.2lf\n", salario2); printf("Idade: %d\n", idade); printf("Sexo: %c\n", sexo); return 0 ; }

COMO CRIAR UM PROJETO NO CODE BLOCKS

Por que criar um projeto?

  • Um projeto pode conter vários arquivos relacionados
  • Algumas ferramentas da IDE só funcionam em projetos: Debugger

Passos:

 File -> New -> Project

 Console Application -> Go

 Next -> (escolha a linguagem) -> Next

 (dê um nome para o projeto) -> (escolha a pasta) -> Finish

Para abrir o projeto novamente:

  • Abra pelo arquivo .cbp

ESTRUTURA CONDICIONAL EM C

Simples Composta Encadeamento

if (condição) {

comando

comando

if (condição) {

comando

comando

else {

comando

comando

if (condição1) {

comando

comando

else if (condição2) {

comando

comando

else {

comando

comando

Exemplo VisualG Exemplo C Algoritmo "teste_condicional" Var hora : inteiro Inicio escreva("Digite uma hora do dia: ") leia(hora) se hora < 12 entao escreval("Bom dia!") senao escreval("Boa tarde!") fimse Fimalgoritmo #include <stdio.h> int main() { int hora; printf("Digite uma hora do dia: "); scanf("%d", &hora); if (hora < 12 ) { printf("Bom dia!\n"); } else { printf("Boa tarde!\n"); } return 0 ; }

ESTRUTURA ENQUANTO EM C

Sintaxe Regra while (condição) { comando comando } V: executa e volta F: pula fora Exemplo VisualG Exemplo C Algoritmo "teste_enquanto" Var x, soma : inteiro Inicio soma <- 0 escreva("Digite o primeiro numero: ") leia(x) enquanto x <> 0 faca soma <- soma + x escreva("Digite outro numero: ") leia(x) fimenquanto escreval("SOMA = ", soma) Fimalgoritmo #include <stdio.h> int main() { int x, soma; soma = 0 ; printf("Digite o primeiro numero: "); scanf("%d", &x); while (x != 0 ) { soma = soma + x; printf("Digite outro numero: "); scanf("%d", &x); } printf("SOMA = %d\n", soma); return 0 ; }

ESTRUTURA DO-WHILE EM C (variante da estrutura REPITA-ATÉ)

Sintaxe Regra

do {

comando 1

comando 2

} while (condição);

V: volta

F: pula fora

Exemplo VisualG Exemplo C

Algoritmo "exemplo_repita_ate" Var C, F : real resp : caractere Inicio repita escreva("Digite a temperatura em Celsius: ") leia(C) F <- 9.0 * C / 5.0 + 32. escreval("Equivalente em Fahrenheit: ", F:6:1) escreva("Deseja repetir (s/n)? ") leia(resp) ate resp <> "s" Fimalgoritmo #include <stdio.h> void limpar_entrada() { char c; while ((c = getchar()) != '\n' && c != EOF) {} } int main() { double C, F; char resp; do { printf("Digite a temperatura em Celsius: "); scanf("%lf", &C); F = 9.0 * C / 5.0 + 32.0; printf("Equivalente em Fahrenheit: %.1lf\n", F); printf("Deseja repetir (s/n)? "); limpar_entrada(); scanf("%c", &resp); } while (resp == 's'); return 0 ; }

VETORES EM C

Exemplo VisualG Exemplo C Algoritmo "teste_vetor" Var vet: vetor [0..9] de real N, i : inteiro Inicio escreva("Quantos numeros voce vai digitar? ") leia(N) para i de 0 ate N-1 faca escreva("Digite um numero: ") leia(vet[i]) fimpara escreval escreval("NUMEROS DIGITADOS:") para i de 0 ate N-1 faca escreval(vet[i]:8:1) fimpara Fimalgoritmo #include <stdio.h> int main() { int N, i; printf("Quantos numeros voce vai digitar? "); scanf("%d", &N); double vet[N]; for (i = 0 ; i < N; i++) { printf("Digite um numero: "); scanf("%lf", &vet[i]); } printf("\nNUMEROS DIGITADOS:\n"); for (i = 0 ; i < N; i++) { printf("%.1lf\n", vet[i]); } return 0 ; }