Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação
- Introdução à Linguagem C -
ICEx/UFF
Volta Redonda-RJ
© 1999-2020
Introdução à Programação – Introdução à Linguagem C –
Sumário
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 2
Introdução à Programação – Introdução à Linguagem C –
Sintaxe: if (condição 1) {
bloco de código 1
}
else if (condição 2){
bloco de código 2
}
...
else if (condição n){
bloco de codigo n
}
else{
bloco de código
}
#include <stdio.h>
int main()
{ int n;
printf("Inteiro: ");
scanf("%d", &n);
if (n < 200){
printf("Menor que 200.\n");
}
else if (n > 500) {
printf("Maior que 500.\n");
}
else{
printf("Entre 200 e 500.\n");
}
}
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 3
Introdução à Programação – Introdução à Linguagem C –
#include <stdio.h>
int main()
{ int a, b, c;
printf("Entre com três números inteiros: ");
scanf("%d, %d, %d", &a, &b, &c);
if (a>b && a>c)
{ printf("Maior: %d.\n", a);
}
else if(b>c){
printf("Maior: %d.\n", b);
}
else{
printf("Maior: %d.\n", c);
}
}
#include <stdio.h>
int main()
{ int idade;
char sexo;
printf("Idade: ");
scanf("%d", &idade);
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 4
Introdução à Programação – Introdução à Linguagem C –
if (sexo=='m' || sexo=='M'){
printf("%d - Sexo masculino.", idade);
}
else if (sexo=='f' || sexo=='F'){
printf("Sexo feminino .\n");
}
}
Sintaxe: switch(expressão)
{ case constante1:
bloco de código 1;
break;
case constante2:
bloco de código 2;
break;
...
case constanteN:
bloco de código n;
break;
default:
bloco de código;
Onde:
- expressão é do tipo int ou char;
- constante1, …, constanteN são constantes (variáveis ou valores)
int ou char;
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 6
Introdução à Programação – Introdução à Linguagem C –
#include <stdio.h>
#include <math.h> //compilar com gcc nome -lm
int main()
{ int op;
float n;
printf("\nNúmero real: ");
scanf("%f", &n);
printf("\n\n1 - Dobro.\n2 - Metade.\n3 - Quadrado.\n\
nOpção: ");
scanf("%d", &op);
switch (op)
{ case 1:
printf("\nDobro = %f.\n\n", n*2);
break;
case 2:
printf("\nMetade = %f.\n\n", n/2);
break;
case 3:
printf("\nQuadrado=%f.\n\n", pow(n,2));
break;
default:
printf("\nOpção inválida.\n\n");
}
}
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 7
Introdução à Programação – Introdução à Linguagem C –
Código Classificação
1 Alimento não perecível
2, 3 ou 4 Alimento perecível
5 ou 6 Vestuário
7 Higiene pessoal
8, 9 ou 10 Limpeza e utensílios domésticos
Qualquer outro código Inválido
#include <stdio.h>
int main()
{ int op;
printf("\nEscolha o código do produto: ");
scanf("%d", &op);
switch (op)
{ case 1:
printf("\nAlimento não perecível.\n\n");
break;
case 2: //sem break = união dos cases
case 3:
case 4:
printf("\nAlimento perecível.\n\n");
break;
case 5:
case 6:
printf("\nVestuário.\n\n");
break;
case 7:
printf("\nHigiêne pessoal.\n\n");
break;
case 8:
case 9:
case 10:
printf("\nLimpeza e utensílios domésticos.\
n\n");
break;
default:
printf("\nOpção inválida.\n\n");
}
}
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 8
Introdução à Programação – Introdução à Linguagem C –
Exercícios
Média Conceito
De 0.0 à 4.9 D
De 5.0 a 6.9 C
De 7.0 a 8.9 B
De 9.0 a 10.0 A
A = 4*pi*r^2
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 9
Introdução à Programação – Introdução à Linguagem C –
Onde:
- inicialização é uma expressão que contém o valor inicial da
variável contadora e só é executada uma vez no início.
- condição é uma expressão lógica e/ou relacional de controle de
repetição.
- bloco de código é o conjunto de instruções a ser executado.
#include <stdio.h>
int main()
{
int i; //variável de controle (índice do laço)
for(i=0; i<=100; i++) //crescente
{ printf("%d \t", i);
}
printf("\n");
}
#include <stdio.h>
int main()
{ int i;
for(i=100; i>=0; i--) //decrescente
{ printf("%d \t", i);
}
printf("\n");
}
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 10
Introdução à Programação – Introdução à Linguagem C –
#include <stdio.h>
int main()
{ int i;
for(i=0; i<=100; i+=2)
{ printf("%d \t", i);
}
printf("\n");
}
#include <stdio.h>
int main()
{ int i;
for(i=1; i<=100; i+=2)
{ printf("%d \t", i);
}
printf("\n");
}
#include <stdio.h>
int main()
{ int i, n;
for(i=0; i<10; i++)
{ printf("Entre com um número: ");
scanf("%d", &n);
if(n%2==0){
printf("%d.\n",n*2);
}
else {
printf("Impar.\n");
}
}
}
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 11
Introdução à Programação – Introdução à Linguagem C –
#include <stdio.h>
#include <math.h>
int main()
{
int i;
float n;
for(i=0; i<10; i++)
{ printf("Entre com um número real: ");
scanf("%f", &n);
if(n>0){
printf("Raiz = %.2f.\n", sqrt(n));
}
else if (n<0){
printf("Quadr = %.2f.\n", pow(n,2));
}
else {
printf("Zero ;D\n");
}
}
}
Exercícios
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 12
Introdução à Programação – Introdução à Linguagem C –
Contadores e Acumuladores
#include <stdio.h>
int main()
{ int i, n, cont;
#include <stdio.h>
int main()
{ int i, soma;
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 13
Introdução à Programação – Introdução à Linguagem C –
Onde:
- condição é uma expressão relacional e/ou lógica (o resultado
deverá ser verdadeiro ou falso).
printf("\n\n");
}
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 14
Introdução à Programação – Introdução à Linguagem C –
while( i >= 0 )
{ printf("%d \t ", i);
i--; //muda o valor da variável da condição
}
printf("\n\n");
}
Exercício 1: Ler vários números inteiros e imprimir o triplo do
número caso seja positivo. Caso contrário, imprimir o dobro do número. O
programa encerra quando for digitado o valor 0 (zero).
#include<stdio.h>
int main()
{ int i=10; //inicialização
float n;
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 15
Introdução à Programação – Introdução à Linguagem C –
do
{
printf(“\n Real: ”);
scanf(“%f”, &n);
printf(“\t quadrado= %f”, n*n);
i--; //muda a variável de controle
} while ( i > 0 ); //verdadeiro = repete do
}
Exemplo:
int a = 200, b = 100, c;
c = ( a > b ) ? a : b;
//a é maior que b, então c = 200
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 16
Introdução à Programação – Introdução à Linguagem C –
#include <stdio.h>
int main()
{ int a, b, c;
printf("\n\nInforme dois inteiros: ");
scanf("%d, %d", &a, &b);
c = ( a < b ) ? a : b;
#include <stdio.h>
int main()
{ int a, b, c, d;
printf("Entre com três números inteiros: ");
scanf("%d, %d, %d", &a, &b, &c);
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 17
Introdução à Programação – Introdução à Linguagem C –
Exercícios
Declaração de um vetor:
tipo nome[tamanho];
índices 0 1 2 3 4 5 6 7 8 9
vetor
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 18
Introdução à Programação – Introdução à Linguagem C –
#include <stdio.h>
int main()
{ int vet[5], i; //declara vetor vet tamanho 5
printf("\n\nLeitura:\n");
for(i=0; i<5; i++)
{ printf("\nInforme o elemento %d: ", i);
scanf("%d", &vet[i]); //vet posição i
}
printf("\n\nImpressao:\n\n");
for(i=0; i<5; i++)
printf("%d\t", vet[i]);
printf("\n\n");
}
Inicialização de Vetores
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 19
Introdução à Programação – Introdução à Linguagem C –
#include <stdio.h>
int main()
{ int i, v[10];
printf("Elementos do vetor:\n\n");
for(i=0; i<10; i++)
printf("%d\t", v[i]);
printf("\n");
}
#include <stdio.h>
int main()
{ int i, x[10];
printf("\n\nLeitura:\n\n");
for(i=0; i<10; i++) //incrementando
{ printf("Digite um valor inteiro: ");
scanf("%d", &x[i]);
}
printf("\nInverso:\n");
for(i=9; i>=0; i--) //decrementando
printf("%d\t", x[i]); //apenas imprime invertido
//CUIDADO: desta forma NÃO gera um novo vetor!!
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 20
Introdução à Programação – Introdução à Linguagem C –
printf("\n\n");
}
#include <stdio.h>
int main()
{ int x[10], soma=0, i;
printf("\nLeitura:\n\n");
for(i=0; i<10; i++)
{ printf("\nElemento %d: ", i);
scanf("%d", &x[i]);
}
Diretiva #define
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 21
Introdução à Programação – Introdução à Linguagem C –
#include <stdio.h>
#define MAX 10 //tamanho dos vetores
int main()
{ int i, a[MAX], b[MAX], soma[MAX], dif[MAX];
printf("\n\nLeitura:");
for(i=0; i<MAX; i++)
{ printf("\nElemento a[%d]: ", i);
scanf("%d", &a[i]);
}
//impressões
printf("\n\nVetor a: ");
for(i=0; i<MAX; i++)
printf("%d\t", a[i]);
printf("\nVetor b: ");
for(i=0; i<MAX; i++)
printf("%d\t", b[i]);
printf("\n\n\n");
}
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 22
Introdução à Programação – Introdução à Linguagem C –
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 23
Introdução à Programação – Introdução à Linguagem C –
Vetores de Caracteres
→ Esta declaração cria uma variável nome como uma string ou vetor
de caracteres, permitindo um comprimento de 79 caracteres, mais o
caractere de fim de string ‘\0’.
nome
\0
0 1 2 ... 78 79
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 24
Introdução à Programação – Introdução à Linguagem C –
Sintaxe: gets(nome_vetor);
Exemplo:
#include <stdio.h>
int main()
{ char nome[50];
printf("\nSeu nome: ");
gets(nome); //%s para strings
printf("\n\nOlá, %s !\n\n",nome);
//%s para strings
}
Exemplo:
#include <stdio.h>
#include <string.h>
int main()
{ char s1[100], s2[100], s3[100];
printf("\nInforme uma string qualquer: ");
gets(s1);
//copiar o valor de s1 para s2
strcpy(s2, s1);
//copiar texto entre aspas para s3
strcpy(s3,"string informada: ");
//mostrar
printf("\n\n%s %s\n\n",s3 ,s2);
}
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 25
Introdução à Programação – Introdução à Linguagem C –
#include <stdio.h>
#include <string.h>
int main()
{ char s1[100], s2[100];
printf("\nInforme uma string: ");
gets(s1);
strcpy(s2,"string informada: ");
strcat(s2, s1); //concatena
printf("\n\n%s\n\n", s2);
}
Exemplo:
#include <stdio.h>
#include <string.h>
int main()
{ char s1[100];
int tam;
printf("\nInforme uma string qualquer: ");
gets(s1);
tam = strlen(s1);
//mostrar
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 26
Introdução à Programação – Introdução à Linguagem C –
Exemplo:
#include <stdio.h>
#include <string.h>
int main()
{ char s1[100], s2[100];
printf("\nInforme uma string: ");
gets(s1);
gets(s2);
//comparando
if( strcmp(s1, s2) ) //se iguais → 0 (executa o else)
printf("\nDiferentes.\n");
else
printf("\nIguais.\n");
}
Exemplo:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 27
Introdução à Programação – Introdução à Linguagem C –
int main()
{ char s[100];
int i, tam;
printf("\nInforme uma string qualquer: ");
gets(s);
tam = strlen(s);
//maiusculas
for(i=0; i<tam; i++)
s[i] = toupper(s[i]); //um por um
//mostrar
printf("\n\n%s\n\n", s);
}
Exemplo:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{ char s[100];
int i, tam;
printf("\nInforme uma string qualquer: ");
gets(s);
tam = strlen(s);
//minusculas
for(i=0; i<tam; i++)
s[i] = tolower(s[i]); //um por um
//mostrar
printf("\n\n%s\n\n", s);
}
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 28
Introdução à Programação – Introdução à Linguagem C –
Solução:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{ char s1[0], s2[10], s3[20];
int i, tam1, tam2, tam3;
//leitura
printf("\nInforme uma string qualquer: ");
gets(s1);
printf("\nInforme outra string qualquer: ");
gets(s2);
//tamanhos
tam1 = strlen(s1);
tam2 = strlen(s2);
//mostrar tamanhos
printf("\n\n%s = %d caracteres", s1, tam1);
printf("\n%s = %d caracteres", s2, tam2);
//mostrar copiada
printf("\ns3 (copiada) = %s", s3);
//comparar
if( strcmp(s1, s2) ) //iguais → 0 → else
printf("\ns1 e s2 são diferentes.");
else
printf("\ns1 e s2 são iguais.");
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 29
Introdução à Programação – Introdução à Linguagem C –
//mostrar concatenada
printf("\ns3 (concatenada) = %s", s3);
//maiusculas
tam3 = strlen(s3);
for(i=0; i<tam3; i++)
s3[i] = toupper(s3[i]);
//mostrar maiusculas
printf("\nMaiúsculas: %s\n\n", s3);
//minusculas
for(i=0; i<tam3; i++)
s3[i] = tolower(s3[i]);
//mostrar minusculas
printf("\nMinúsculas: %s\n\n", s3);
}
Exercícios
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 30
Introdução à Programação – Introdução à Linguagem C –
Matrizes Bidimensionais
Sintaxe:
Exemplos:
int matriz[5][4]; //5 lin, 4 col
int a[5][3]; //5 lin, 3 col
float b[3][5]; //3 lin, 5 col
m 0 1 2 3 4
0
1
2
3
#include <stdio.h>
int main()
{ int a[3][3], l, c;
//leitura
for(l=0; l<3; l++) //linhas
for(c=0; c<3; c++) //colunas
{ printf("\n[%d][%d]:", l, c);
scanf("%d",&a[l][c]);
}
//impressão
printf("\n\nMatriz lida: \n\n");
for(l=0; l<3; l++)
{ for(c=0; c<3; c++)
{ printf("\t%d", a[l][c]);
}
printf("\n"); //prox linha da matriz
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 31
Introdução à Programação – Introdução à Linguagem C –
}
printf("\n\n");
}
Exercício Resolvido 1: Escreva um programa que leia e imprima
uma matriz 3x4. Logo após, gere a matriz dobro. No final, imprima a matriz
dobro.
Solução:
#include <stdio.h>
int main()
{ int a[3][4], dobro[3][4], l, c;
//leitura
for(l=0; l<3; l++)
for(c=0; c<4; c++)
{ printf("\n[%d][%d]:", l, c);
scanf("%d", &a[l][c]);
}
//impressão
printf("\n\nMatriz lida: \n\n");
for(l=0; l<3; l++)
{ for(c=0; c<4; c++)
printf("\t%d", a[l][c]);
printf("\n"); //prox linha da matriz
}
printf("\n\n");
}
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 32
Introdução à Programação – Introdução à Linguagem C –
Solução:
#include <stdio.h>
int main()
{ int a[3][2], b[3][2], soma[3][2], l, c;
//leitura
for(l=0; l<3; l++)
for(c=0; c<2; c++)
{ printf("\na[%d][%d]:", l, c);
scanf("%d", &a[l][c]);
}
for(l=0; l<3; l++)
for(c=0; c<2; c++)
{ printf("\nb[%d][%d]:", l, c);
scanf("%d", &b[l][c]);
}
//impressão
printf("\n\nMatriz A: \n\n");
for(l=0; l<3; l++)
{ for(c=0; c<2; c++)
printf("\t%d", a[l][c]);
printf("\n"); //prox linha da matriz
}
printf("\n\nMatriz B: \n\n");
for(l=0; l<3; l++)
{ for(c=0; c<2; c++)
printf("\t%d", b[l][c]);
printf("\n"); //prox linha da matriz
}
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 33
Introdução à Programação – Introdução à Linguagem C –
printf("\n\n");
}
Exercício 1: Ler e imprimir uma matriz 4x4 de inteiros. Logo após ,
imprimir:
-Os elementos da diagonal principal
-Os elementos acima da diagonal principal
-Os elementos abaixo da diagonal principal
Exercícios
© 1999 – 2020 Prof. Dr. Adriano Caminha e Prof. Dra. Vera Lúcia Prudência dos Santos Caminha – ICEx/UFF – Volta Redonda-RJ 34