Post on 03-Oct-2020
Programação de Computadores
II Aula 03. Linguagem C I
Slides cedidos por Karina Mochetti
2018.1
Aula 03. Linguagem C I
C vs Python
Python é uma linguagem muito mais nova, de 1991.
C é muito mais e�ciente, os programas rodam mais rápido.
Seu objetivo é melhorar a compreensão do código e gerarcódigos menores.
Python possui muitas bibliotecas prontas, C precisa que muitacoisa seja programada do zero.
Aula 03. Linguagem C I
Hello World
/* Hello World program */
#include<stdio.h>
int main ()
{
printf ("Hello World.\n");
return 0;
}
Aula 03. Linguagem C I
De�nição de Programa
Um programa em C começa após o cabeçalho int main() { etermina ao encontrar o return 0; }.
/* Hello World program */
#include<stdio.h>
int main () {
printf ("Hello World.\n");return 0;
}
Aula 03. Linguagem C I
Comentário
Um comentário em C pode ser delimitado por /* e */ ou contersomente uma linha começando com //.
/* Hello World program */
#include<stdio.h>
int main () {
printf ("Hello World.\n");return 0;
}
Aula 03. Linguagem C I
Comentário
Um comentário em C pode ser delimitado por /* e */ ou contersomente uma linha começando com //.
// Hello World program
#include<stdio.h>
int main () {
printf ("Hello World.\n");return 0;
}
Aula 03. Linguagem C I
Include
Algumas funções de C estão declaradas em bibliotecas e para seremusadas essas bibliotecas devem ser incluídas no começo doprograma usando #include <>.
/* Hello World program */
#include<stdio.h>
int main () {
printf ("Hello World.\n");return 0;
}
Aula 03. Linguagem C I
argc e argv
Ao executarmos o programa em linha de comando podemos passar valores
/* Hello World program */#include<stdio.h>
int main (int argv, char* argv[]){
printf ("Hello World.\n");return 0;
}
Aula 03. Linguagem C I
argc e argv
Ao executarmos o programa em linha de comando podemos passarvalores como parâmetros.O número de parâmetros passados é guardado na variável inteiraargc.Os parâmetros são guardados em ordem no vetor de strings argv.
Aula 03. Linguagem C I
Chaves
As chaves { e } são os grandes delimitadores de escopo em C.Indicam o começo e �m do programa, de funções e procedimentos,de repetições e condições.
/* Hello World program */
#include<stdio.h>
int main (int argv, char*argv[])
{
printf ("Hello World.\n");return 0;
}
Aula 03. Linguagem C I
Entrada e Saída
As funções de entrada e saída em C estão localizadas na biblioteca stdio.h (Standard In and Out). Assim, é preciso acrescentar#include<stdio.h> ao começo do programa, para usá-las.
/* Hello World program */#include<stdio.h>
int main (int argv, char* argv[]){
printf ("Hello World.\n");return 0;
}
Aula 03. Linguagem C I
Entrada e Saída
printf()
É a forma de imprimirmos valores na tela. O texto deve estar entreaspas e cada variável deve ser representada pelo seu código. Asvariáveis devem vir depois, separadas por vírgula na mesma ordem.O caracter `\n' indica que deve haver uma quebra de linha.
#include<stdio.h>
int main () {
int i, j;
float x;
printf ("Os valores sao: %d %d %f\n", i, j, x);
return 0;
}
Para pular a linha na impressão deve-se usar o \n.
Aula 03. Linguagem C I
Entrada e Saída
scanf()
É a forma de lermos valores. Cada variável deve estar representadapelo seu código entre aspas e seus nomes devem vir depois,separados por vírgula na mesma ordem.
#include<stdio.h>
int main () {
int i, j;
char c;
printf ("Digite 2 numeros e um caracter: ");
scanf ("%d %d %c", &i, &j, &c);
printf ("Os valores sao: %d %d %c\n", i, j, c);
return 0;
}
Antes de cada variável é necessária colocar o símbolo &.
Aula 03. Linguagem C I
Variáveis
inteiro 4 bytes short n; %hiinteiro 4 bytes int n; %dinteiro 8 bytes long n; %liinteiro 16 bytes long long n; %llireal 4 bytes �oat f; %freal 8 bytes double f; %fcaracter 1 bytes char c; %c
unsigned
Todos os tipos inteiros podem ser declarados como unsigned,forçando o valor a ser sempre positivo, mas dobrando o limitemáximo da variável.
Aula 03. Linguagem C I
Variáveis
Boolean
Não existe o tipo boolean em C. Normalmente usamos um inteiro,onde 1 representa verdadeiro e 0 representa falso.
String
Não existe o tipo string em C, um string é um vetor de caracteresque pode ser declarado com chaves (char str[100];) ou asterisco(char* str;).
Aula 03. Linguagem C I
Expressões
C
adição a + bsubtração a - bmultiplicação a * bdivisão a / bresto a % batribuição a = bincremento a += bdecremento a -= b
Incrementar
Ao incrementar 1 em C podemos fazer: i = i+1 ou i++
Decrementar
Ao decrementar 1 em C podemos fazer: i = i-1 ou i−−
Aula 03. Linguagem C I
Operadores lógicos
C
e a && bou a || bnão !bigual a == bdiferente a != bmenor a < bmaior a > bmenor e igual a <= bmaior e igual a >= b
Atribuição e Igual
Em C = é atribuição e == é igual.
Aula 03. Linguagem C I
Operadores lógicos
C
e a && bou a || bnão !bigual a == bdiferente a != bmenor a < bmaior a > bmenor e igual a <= bmaior e igual a >= b
Atribuição e Igual
Em C = é atribuição e == é igual.
Aula 03. Linguagem C I
Condicional if
O condicional deve ter a condição entre parênteses e as ações entrechaves. Cada if pode vir acompanhado por um else, com suas açõestambém entre chaves. Um if sem chave realiza somente uma ação.
#include<stdio.h>
int main () {
int i;
if (i > 10) printf("E maior que 10\n");else printf("Nao e maior que 10\n");if (i == 100) {
printf ("E igual a 100.\n");i = 0;
printf ("O valor foi zerado.\n");}
return 0;
}Aula 03. Linguagem C I
Exemplo 1
#include<stdio.h>
int main() {
int num;
printf ("Digite o numero: ");
scanf ("%d", &num);
if (num >=0 && num <= 100)
printf ("Sim\n");
else
printf ("Não\n");
return 0;
}
Veri�ca se um número está entre 0 e 100.
Aula 03. Linguagem C I
Exemplo 1
#include<stdio.h>
int main() {
int num;
printf ("Digite o numero: ");
scanf ("%d", &num);
if (num >=0 && num <= 100)
printf ("Sim\n");
else
printf ("Não\n");
return 0;
}
Veri�ca se um número está entre 0 e 100.
Aula 03. Linguagem C I
Exemplo 2
#include<stdio.h>
int main() {
int num;
printf ("Digite o numero: ");
scanf ("%d", &num);
if (num % 2 == 0)
printf ("Sim\n");
else
printf ("Nao\n");
return 0;
}
Veri�ca se um número é par ou não.
Aula 03. Linguagem C I
Exemplo 2
#include<stdio.h>
int main() {
int num;
printf ("Digite o numero: ");
scanf ("%d", &num);
if (num % 2 == 0)
printf ("Sim\n");
else
printf ("Nao\n");
return 0;
}
Veri�ca se um número é par ou não.
Aula 03. Linguagem C I
Exemplo 3
#include<stdio.h>
int main() {
int b1, b2, b3, b4;
int num;
printf ("Digite os digitos: ");
scanf ("%d %d %d %d, &b1, &b2, &b3, &b4);
num = 2*2*2*b1 + 2*2*b2 + 2*b3 + b4;
printf ("O valor e %d\n",num);
return 0;
}
Converte um número binário de 4 dígitos para decimal.
Aula 03. Linguagem C I
Exemplo 3
#include<stdio.h>
int main() {
int b1, b2, b3, b4;
int num;
printf ("Digite os digitos: ");
scanf ("%d %d %d %d, &b1, &b2, &b3, &b4);
num = 2*2*2*b1 + 2*2*b2 + 2*b3 + b4;
printf ("O valor e %d\n",num);
return 0;
}
Converte um número binário de 4 dígitos para decimal.
Aula 03. Linguagem C I
Exercício
Faça um programa em C que leia duas datas em dia, mês e ano eretorne a mais antiga, formatada de maneira DD/MM/AAAA.
Aula 03. Linguagem C I