Escolar Documentos
Profissional Documentos
Cultura Documentos
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 1/124
14/11/22, 09:41 Linguagem C: recursos básicos
Objetivos
Módulo 1 Módulo 2
Módulo 3
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 2/124
14/11/22, 09:41 Linguagem C: recursos básicos
Estruturas de dados
homogêneas e heterogêneas
Aplicar as estruturas de dados homogêneas
e heterogêneas.
Introdução
Os recursos básicos da Linguagem C fornecem as ferramentas iniciais de
programação, permitindo que sejam elaborados programas de baixa e média
complexidade. Inicialmente, serão apresentados os tipos básicos de dados,
como int, char e float, que podem ser empregados para armazenar variáveis.
Também serão apresentados os tipos de operadores definidos na linguagem
C: aritméticos, lógicos e relacionais.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 3/124
14/11/22, 09:41 Linguagem C: recursos básicos
Variáveis
Para manipular dados dos mais diversos tipos, é necessário poder armazená-los
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 4/124
14/11/22, 09:41 Linguagem C: recursos básicos
na memória e poder referenciá-los quando for preciso. É por isso que foi criado o
conceito de variável.
Tamanho em
Tipo Tamanho em bytes
bytes
unsigned char 1 0 a 255
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 5/124
14/11/22, 09:41 Linguagem C: recursos básicos
Tamanho em
Tipo Tamanho em bytes
bytes
-2.147.483.648 a
int 4
2.147.483.647
unsigned int 4 0 a 4.294.967.295
-2.147.483.648 a
signed int 4
2.147.483.647
unsigned short int 2 0 a 65.535
-2.147.483.648 a
long int 4
2.147.483.647
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 6/124
14/11/22, 09:41 Linguagem C: recursos básicos
Tamanho em
Tipo Tamanho em bytes
bytes
-2.147.483.648 a
signed long int 4
2.147.483.647
unsigned long int 4 0 a 4.294.967.295
Seis dígitos de
float 4
precisão
Dez dígitos de
double 8
precisão
Dez dígitos de
long double 10
precisão
Na tabela é possível observar que existem quatro tipos de variável: char, int, float
e double. A seguir, veremos mais detalhes sobre eles. Perceba que, a seguir, os
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 7/124
14/11/22, 09:41 Linguagem C: recursos básicos
tipos float e double serão apresentados juntos. Isso ocorre porque ambos
possuem uma certa similaridade:
char expand_more
O tipo char usa 8 bits para armazenar 256 valores, isto é, 28 valores.
Como está definido na linguagem que o tipo char deve ter números
positivos e negativos, é necessário usar 1 bit para representar o sinal,
sobrando 7 bits para representar 128 (=27) caracteres.
N −1
−1 ∗ 2
(1) valor mínimo =
N −1
2 − 1
(2) valor máximo =
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 8/124
14/11/22, 09:41 Linguagem C: recursos básicos
8−1
−1 ∗ 2 = −128
Assim, para o tipo char, o valor mínimo = e o valor
8−1
2 = 127
máximo = .
N
2 − 1
(4) valor máximo =
8
2 − 1 = 255
Então, o valor máximo = .
int expand_more
O tipo int armazena um número inteiro que ocupa 4 bytes (ou N = 32 bits)
na memória e a faixa de valores está representada na tabela de tipos
básicos de dados, sendo bastante abrangente ao compreender valores
inteiros negativos e positivos, incluindo o número zero. Os valores
mínimos e máximos são calculados pelas fórmulas (1) e (2).
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 9/124
14/11/22, 09:41 Linguagem C: recursos básicos
Os tipos short int, signed short int e unsigned short int precisam de 2
bytes de armazenamento e, também usam o conceito de inteiro com
sinal e sem sinal. Podem ser empregados para armazenar valores
pequenos, como a idade de uma pessoa.
Os três últimos tipos de inteiros são da classe com valores altos (long),
como: long int, signed long int e unsigned long int e utilizam 32 bits de
armazenamento. Devem ser usados, por exemplo, em cálculos de
projetos de engenharia que utilizam maiores ordem de grandeza.
Quando você precisa fazer operações com números reais, podem ser
usados três tipos: float, double e long double.
A diferença entre uma variável do tipo float, tipo double ou long double é
o número de bytes que reserva para armazenar o valor. A dimensão do
float é normalmente de 4 bytes, do double é de 8 bytes, e do long double
é de 10 bytes.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 10/124
14/11/22, 09:41 Linguagem C: recursos básicos
Pode-se dizer que esses três tipos armazenam números com precisão
simples (float) ou com dupla precisão (double ou long double). Um float
é representado por uma parte inteira e por outra decimal, separadas por
um ponto (e não por uma vírgula, como é utilizado no Brasil).
Declarações de variáveis
tipo lista_de_variaveis;
Exemplo
int i;
unsigned int a, b, c;
char opcao;
char opcao;
char opcao;
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 11/124
14/11/22, 09:41 Linguagem C: recursos básicos
double salario;
Dica
É boa prática escolher um nome da variável que signifique o que ela deve
armazenar e indique a função da variável. Por exemplo: imposto, valor,
soma2nrs, total, nome, raio, salario_base. Veja que os nomes das variáveis não
possuem acento.
O valor inicial pode ser atribuído de duas formas. A primeira forma é definir a
variável e depois atribuir um valor a ela. A segunda é definir a variável e atribuir
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 12/124
14/11/22, 09:41 Linguagem C: recursos básicos
LINGUAGEM C
content_copy LINGUAGEM C
content_copy
Forma 1: Definir a variável e depois atribuir valor. Forma 2: Definir a variável atribuindo valor.
scanf() printf()
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 13/124
14/11/22, 09:41 Linguagem C: recursos básicos
prompt de comando do
sistema operacional.
A função printf()
Exemplo 1
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main() {
3 float salario = 6500.4567;
4 printf("%s = R$ %.2f", "Sala
5 // Imprime: Salario = R$ 650
6 }
Console
play_arrow Executar
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 14/124
14/11/22, 09:41 Linguagem C: recursos básicos
play_arrow Executar
code Linha 1
code Linha 2
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 15/124
14/11/22, 09:41 Linguagem C: recursos básicos
Linha 3
code
Definição da variável chamada salário (tipo float) e
atribuição inicial com o valor 6500.4567.
code Linha 4
• string “= R$”;
code Linha 5
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 16/124
14/11/22, 09:41 Linguagem C: recursos básicos
code Linha 6
A função scanf()
scanf("%X", &Y)
Onde:
"%X" Y
É o especificador de formato que É o nome da variável que armazenará
define o tipo utilizado. o valor, devendo ser sempre precedida
de &.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 17/124
14/11/22, 09:41 Linguagem C: recursos básicos
Exemplo 2
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main() {
3 int nr = 0;
4 printf("Digite um valor inte
5 scanf("%d", &nr);
6 printf("%s = %d", "Numero",
7 }
8 Console
play_arrow Executar
code Linha 3
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 18/124
14/11/22, 09:41 Linguagem C: recursos básicos
code Linha 4
code Linha 5
code Linha 6
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html#
ifi d % ( d ti ) ( i d t lh 19/124
14/11/22, 09:41 Linguagem C: recursos básicos
• especificador %s (s de string), (veremos mais detalhes
adiante);
• caractere “= ”;
ESPECIFICAÇÃO TIPO
%c char
%d signed int
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 20/124
14/11/22, 09:41 Linguagem C: recursos básicos
ESPECIFICAÇÃO TIPO
%i (signed) int
%u unsigned int
%hi short int
%hu unsigned short int
%lu unsigned long
%f float
%lf double
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 21/124
14/11/22, 09:41 Linguagem C: recursos básicos
ESPECIFICAÇÃO TIPO
%e ou %E notação científica
%x ou %X hexadecimal
%s string
%p ponteiro
Bytes armazenados
Tipo Faixa de valores
na memória
-2.147.483.648 a
int 4
2.147.483.647
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 22/124
14/11/22, 09:41 Linguagem C: recursos básicos
Bytes armazenados
Tipo Faixa de valores
na memória
-2.147.483.648 a
long int 4
2.147.483.647
Exemplo 3
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main()
3 {
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 23/124
14/11/22, 09:41 Linguagem C: recursos básicos
4 int nr_int = 0;
5 short int nr_short_int =
6 long int nr_long_int = 0;
7 printf("Digite um valor ti Console
play_arrow Executar
8 scanf("%d",&nr_int);
9 printf("Digite um valor ti
10 scanf("%hi",&nr_short_int
11 printf("Digite um valor ti
12 scanf("%ld",&nr_long_int);
13 printf("Numero = %d \n", n
code Linhas 4, 5 e 6
code Linha 7
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 24/124
14/11/22, 09:41 Linguagem C: recursos básicos
code Linha 8
code Linha 9
code Linha 10
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html#
d â t é t & id d iá l 25/124
14/11/22, 09:41 Linguagem C: recursos básicos
segundo parâmetro é o caractere & seguido da variável
nr_short_ int, informando que variável vai receber o valor.
code Linha 11
code Linha 12
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html#
A li h 13 14 15 i i iá i d fi id 26/124
14/11/22, 09:41 Linguagem C: recursos básicos
As linhas 13, 14 e 15 imprimem as variáveis definidas.
Observe que os especificadores de formato são os mesmos
empregados no comando scanf(), o "%d","%hi" e "%ld",
adequados a cada tipo de valor.
Na primeira execução, colocando o valor lido 10000 para cada variável, a saída é
10000 para as três variáveis, pois esse valor está dentro da faixa dos 3 tipos.
Como o valor lido é 100000, a saída será 100000 para as duas variáveis do tipo
int e long int, pois esse valor está dentro da faixa de valores de cada tipo.
ESPECIFICADOR SAÍDA
Primeiros X caracteres
%.Xs
da string
%% Imprime %
Exemplo 4
info_outlineTUTORIAL
d content_copyCOPIAR
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 28/124
14/11/22, 09:41 Linguagem C: recursos básicos
C Input
1 #include <stdio.h>
2 int main () {
3 printf("Raio do circulo = %.
4 printf("Raio do circulo = %.
5 printf("Primeiro nome de Pau
6 printf("20%% de 200 = %d\n",
7 }
Console
play_arrow Executar
flag Linha 3
flag Linha 4
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html#
O ifi d % 3E d t ú d ibid 29/124
14/11/22, 09:41 Linguagem C: recursos básicos
O especificador %.3E denota que o número deve ser exibido
no formato de notação científica, seguindo a fórmula
E
N = M x2
, sendo M (Mantissa) e E (Expoente).
+2
1, 236x10
O valor 1.236E+002 é igual a . O número 3 no
flag Linha 6
A utilização de constantes
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 30/124
14/11/22, 09:41 Linguagem C: recursos básicos
Constante é um nome (ou identificador) que assume um valor fixo durante toda a
execução de um programa. Existem duas formas de declarar uma constante:
#define PI 3.1415
Neste caso, a variável pode apenas receber um valor inicial, não podendo
ser alterada durante a execução do programa. Por exemplo:
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 31/124
14/11/22, 09:41 Linguagem C: recursos básicos
Exemplo 5
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 #define PI 3.14159
3 int main () {
4 printf ("Valor de PI: %.2f "
5 }
Console
play_arrow Executar
Exemplo 5
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main () {
3 const double PI = 3.1415; //
4 printf ("Valor de PI %.2f ",
5 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 32/124
14/11/22, 09:41 Linguagem C: recursos básicos
Console
play_arrow Executar
Ao analisar os dois programas, você pode ficar na dúvida sobre o que ocorreu de
diferente. Quanto à execução do programa, neste caso, não foi possível verificar
nenhuma diferença. A mudança ocorre durante o processo de compilação e
execução. Entenda:
#define const
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 33/124
14/11/22, 09:41 Linguagem C: recursos básicos
Uma constante do tipo char possui um único caractere escrito entre aspas
simples, como em 'a', podendo participar normalmente de expressões
aritméticas. O valor que entra na expressão é o do código usado para
representar o caractere, como mostra a tabela a seguir.
Caractere Descrição
'a' Caractere a.
'A' Caractere A.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 34/124
14/11/22, 09:41 Linguagem C: recursos básicos
Caractere Descrição
Perceba que o caractere 'n' é diferente do caractere especial '\n' (New Line). No
próximo código, vamos utilizar constantes como caracteres.
Exemplo 5
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main () {
3 const char ch1 = 'B' , c
4 printf("O valor de ch1 =
5 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 35/124
14/11/22, 09:41 Linguagem C: recursos básicos
Console
play_arrow Executar
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 36/124
14/11/22, 09:41 Linguagem C: recursos básicos
Questão 1
A int idade;
B int num_cliente;
C float a1b2c3;
D float 7a2b3c;
E char letra1;
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 37/124
14/11/22, 09:41 Linguagem C: recursos básicos
Questão 2
A scanf("%f", &num);
B scanf("%lf", &num);
C scanf("%d", &num);
D scanf("%c", &num);
E scanf("%p", &num);
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 38/124
14/11/22, 09:41 Linguagem C: recursos básicos
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 39/124
14/11/22, 09:41 Linguagem C: recursos básicos
Operadores
Um operador em uma linguagem de programação é um símbolo que diz ao
compilador ou interpretador para executar operações matemáticas, relacionais
ou lógicas e produzir o resultado final. Operadores são usados para compor uma
expressão. Uma expressão é uma fórmula na qual operandos são vinculados uns
aos outros pelo uso de operadores para calcular determinado valor.
aritméticos e de atribuição;
de incremento e decremento;
atribuição múltipla;
lógicos e relacionais.
Operadores aritméticos
Operadores aritméticos são usados para operações matemáticas. O quadro a
seguir descreve cada um deles usados na linguagem C.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 40/124
14/11/22, 09:41 Linguagem C: recursos básicos
a = 10 (variável
= Atribuição recebe valor 10); b =
5;
soma = a + b; (soma
+ Adição
= 15)
mult = a*b; (mult =
* Multiplicação
50)
resto = a%b; (resto =
% Resto da divisão
0)
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 41/124
14/11/22, 09:41 Linguagem C: recursos básicos
1+2-3 0 +-
24 - 3 * 5 9 * -
4-2*6/4+
2 */-+
1
6 / 2 + 11 %
11 / % * +
3 * 4
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 42/124
14/11/22, 09:41 Linguagem C: recursos básicos
1 + (2 - 3) 0 -+
(24 - 3) * 5 105 -*
(4 - 2 * 6) / 4
-1 *-/+
+1
6 / ((2 + 11)
24 +%/*
% 3) * 4
Exemplo 1
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main(){
3 int nr;
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 43/124
14/11/22, 09:41 Linguagem C: recursos básicos
4 printf("Digite o valor em me
5 scanf("%d", &nr);
6 printf(" %d m = %d cm \n", n
7 }
Console
play_arrow Executar
Exemplo 2
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main() {
3 float a, b, c, media;
4 printf("Digite o primeiro n
5 scanf("%f", &a);
6 printf("Digite o segundo nr
7 scanf("%f", &b);
8 printf("Digite o terceiro n Console
play_arrow Executar
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 44/124
14/11/22, 09:41 Linguagem C: recursos básicos
play_arrow Executar
9 scanf("%f", &c);
10 media = (a + b + c)/3;
11 printf("Media = %.3f\n", me
12 }
Exemplo 3
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 #define PI 3.141592
3 int main () {
4 float raio, area;
5 printf ("Digite o raio do ci
6 scanf ("%f", &raio);
7 area = (raio*raio)*PI;
8 printf ("Área do seu circulo Console
play_arrow Executar
9 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 45/124
14/11/22, 09:41 Linguagem C: recursos básicos
Observe que o valor da área possui duas casas decimais e é arredondado para
314.16.
Linguagem C
content_copy
1 i = i + 1;
2 val = val * 2;
+= -= *=
At ib i ã
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html#
di ã At ib i ã bt ã At i 46/124
14/11/22, 09:41 Linguagem C: recursos básicos
Atribuição por adição Atribuição por subtração Atri
Atribuição
Instrução equivalente
aritmética
i += 1; i = i + 1;
val *= 2; val = val * 2;
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 47/124
14/11/22, 09:41 Linguagem C: recursos básicos
Exemplo 4
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main(){
3 int i = 1, j = 1, valor = 1
4 int div10 = 20, resto = 20;
5 printf("i = %d\n", i += 1);
6 printf("j = %d\n", j -= val
7 printf("num = %d\n", num *=
8 printf("div10 = %d\n", div1 Console
play_arrow Executar
9 printf("resto = %d\n", rest
10 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 48/124
14/11/22, 09:41 Linguagem C: recursos básicos
Exemplo 5
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main(){
3 int i = 0, j = 0;
4 printf("%d\n", ++i); //Im
5 printf("%d\n", j++); //Im
6 printf("%d\n", --i); //Im
7 printf("%d\n", j--); //Im
8 } Console
play_arrow Executar
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 49/124
14/11/22, 09:41 Linguagem C: recursos básicos
Perceba que, quando o operador é utilizado após a variável (j++), o valor original
é impresso e, em seguida, a operação é realizada.
Linguagem C
content_copy
Linguagem C
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 50/124
14/11/22, 09:41 Linguagem C: recursos básicos
Operadores lógicos
A linguagem C possui quatro tipos de dados (int, float, char e double), não
existindo nenhum tipo que permita representar os valores lógicos (verdadeiro e
falso). Existem, contudo, linguagens que disponibilizam um tipo específico para
representar valores lógicos (Ex.: tipo boolean, em PASCAL, o qual pode receber
os valores TRUE e FALSE).
&& || !
e (and) ou (or) não (not)
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 51/124
14/11/22, 09:41 Linguagem C: recursos básicos
A
A ||
A B !A &&
B
B
0 0 1 0 0
0 1 1 0 1
1 0 0 0 1
1 1> 0 1 1
Exemplo 6
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main(){
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 52/124
14/11/22, 09:41 Linguagem C: recursos básicos
3 int A = 0, D = 123;
4 float B = 0.1;
5 char C = 0;
6 printf("!A = %d e !B = %d \n
7 printf("B && C = %d e C || D Console
8 } play_arrow Executar
C || D = 0 || 123 = 1.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 53/124
14/11/22, 09:41 Linguagem C: recursos básicos
Atividade discursiva
Considerando M = 1, N = 0 e K = 1, qual é o valor das expressões abaixo? Em
dúvida? Então, que tal você escrever um programa em C que realize o cálculo?
a) !M && N || K;
b) (K && M) || (!M).
Exibir soluçãoexpand_more
O resultado é:
a) 1
b) 1
int main(void){
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 54/124
14/11/22, 09:41 Linguagem C: recursos básicos
int M = 0, N = 0, K =1;
Operadores relacionais
A linguagem C possui um conjunto de seis operadores relacionais, os quais
podem ser usados na avaliação de expressões. Sua finalidade consiste no
estabelecimento de relações entre os operandos. O quadro a seguir apresenta os
operadores relacionais:
== Igualdade X == Y X é igual a Y?
X é maior que
> Maior que X>Y
Y?
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 55/124
14/11/22, 09:41 Linguagem C: recursos básicos
Maior ou X é maior ou
>= X >= Y
igual que igual a Y?
X é menor que
< Menor que X < Y
Y?
Menor ou X é menor ou
<= X <= Y
igual que igual a Y?
X é diferente
!= Diferente X != Y
de Y?
0 1
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 56/124
14/11/22, 09:41 Linguagem C: recursos básicos
== !=
&&
||
Exemplo
5 > 2, resultado 1.
6 ! 6, resultado 0.
Exemplo 7
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main() {
3 int A = 102;
4 float B = 102.0;
5 char C = 'a';
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 57/124
14/11/22, 09:41 Linguagem C: recursos básicos
6 int D = 50;
7 printf("A é maior ou igual
8 printf("A é diferente de B? Console
play_arrow Executar
9 printf("C é maior que D? %d
10 }
code Linha 7
code Linha 8
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 58/124
14/11/22, 09:41 Linguagem C: recursos básicos
Linha 9
code
A expressão C > D é verdadeira, pois o valor de ‘a’ é 97 no
código ASCII, portanto, a saída é 1.
call_split loop
Estruturas de decisão Estruturas de repetição
Estruturas de decisão
Estruturas que permitem direcionar o fluxo lógico para blocos distintos de
instruções conforme uma condição de controle. Veremos os comandos:
if-else;
switch-case;
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 59/124
14/11/22, 09:41 Linguagem C: recursos básicos
Comando if-else
Pseudocódigo
content_copy
1 if (condição)
2 instrução1;
3 [ else
4 instrução2; ]
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 60/124
14/11/22, 09:41 Linguagem C: recursos básicos
Observe que, na sintaxe apresentada, a componente else está entre colchetes ([])
porque é opcional. Essa instrução permite que um bloco de instruções não seja
executado em um programa, bastando que a condição necessária para a sua
execução nunca se verifique.
Exemplo 8
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include<stdio.h>
2 int main()
3 {
4 int num;
5 printf("Digite o valor intei
6 scanf("%d", &num);
7 if ((num % 2) == 0)
8 printf("%d é numero par\ Console
play_arrow Executar
9 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 61/124
14/11/22, 09:41 Linguagem C: recursos básicos
Nessa linha, a condição (num % 2) == 0 retorna um valor, que será 1, se ela for
verdadeira (número par) ou 0, se for falsa (número ímpar). Caso seja verdadeira,
o teste da condição será executado na linha 8 do programa que contém o printf.
1 #include<stdio.h>
2 int main()
3 {
4 int num;
5 printf("Digite o valor inte
6 scanf("%d", &num);
7 if ((num % 2) == 0)
8 printf("%d é numero par Console
play_arrow Executar
9 else
10 printf("%d é numero ímp
11 }
Lembre-se de que você deve apenas incluir o código na linha 9. Observe que o
else termina com um ponto e vírgula.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 62/124
14/11/22, 09:41 Linguagem C: recursos básicos
Exemplo 9
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main() {
3 int num = 0;
4 printf("Digite um numero in
5 scanf("%d", &num);
6 if ( ((num % 2) == 0) && ((
7 printf("%d é divisível
8 else Console
play_arrow Executar
9 printf(" %d não é divis
10 }
Existem situações em que o teste de uma condição não é suficiente para tomar
uma decisão. Pode ser necessário testar mais do que uma condição. Assim, a
linguagem C padrão também permite o uso de comandos if aninhados,
conforme a sintaxe a seguir.
Linguagem C
content_copy
1 if(condição) {
2 Instrução;
3 }
4 else {
5 if(condição)
6 Instrução;
7 else
8 if (condição)
9 Instrução; (...)
10 else
11 Instrução;
12 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 64/124
14/11/22, 09:41 Linguagem C: recursos básicos
No último exemplo, o teste era feito para testar se o número era divisível por 2 e
por 5. Entretanto, podemos ter situações em que queremos verificar outras
situações. Por exemplo:
Exemplo 10
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main()
3 {
4 int num=0;
5 printf("Digite um numero i
6 scanf("%d", &num);
7 if (((num % 2) == 0) && ((
8 printf("%d é divisivel Console
play_arrow Executar
9 else if (((num % 2) == 0)
10 printf(" %d é divisive
11 else if (((num % 2) != 0)
12 printf(" %d não é divi
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 65/124
14/11/22, 09:41 Linguagem C: recursos básicos
13 else
14 i f(" %d ã é di i
Comando switch-case
O segundo comando de decisão é o switch-case. A instrução switch-case
adapta-se particularmente à tomada de decisões em que o número de
possibilidades é elevado (em geral maior que 2, se não usamos if-else), de forma
a reduzir a complexidade de if-else consecutivos e encadeados. Veja a sintaxe
do switch-case:
Linguagem C
content_copy
1 switch (expressão)
2 {
3 case constante 1:
4 sequência de instruções 1;
5 [break;]
6 case constante 2:
7 sequência de instruções 2;
8 [break;]
9 (...)
10 case constante n:
11 sequência de instruções n; [
12 break;]
13 [default: instruções; ]
14 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 66/124
14/11/22, 09:41 Linguagem C: recursos básicos
switch if
Nosso próximo exemplo será um programa que lê dois números reais e executa
a soma ou multiplicação deles, de acordo com a opção escolhida (digitar 1 –
para soma ou 2 – para multiplicação). Os valores a serem inseridos devem estar
na mesma linha, separados por espaço.
Exemplo 11
info_outlineTUTORIAL
d content_copyCOPIAR
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 67/124
14/11/22, 09:41 Linguagem C: recursos básicos
C Input
1 int main()
2 {
3 float num1, num2;
4 int opcao = 0;
5
6 printf("Entre com o primei
7 scanf("%f", &num1);
8 printf("Entre com o segund Console
play_arrow Executar
9 scanf("%f", &num2);
10 printf("Digite: \n");
11 printf("1 - Calcular a som
12 printf("2- Calcular a mult
13 printf("Opcao escolhida: "
14 scanf("%d", &opcao);
O operador ternário?
Pseudocódigo
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 68/124
14/11/22, 09:41 Linguagem C: recursos básicos
Exemplo 12
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main ()
3 {
4 int numero;
5 printf("Digite um numero: \n
6 scanf("%d", &numero);
7 numero >= 0 ? numero++ : num
8 printf("O novo valor de nume Console
play_arrow Executar
9 }
Neste código, se o número for maior ou igual a zero (numero >= 0), a variável
numero será incrementada (numero++), caso contrário, será decrementada de
uma unidade (numero--).
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 69/124
14/11/22, 09:41 Linguagem C: recursos básicos
Exemplo 13
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main ()
3 {
4 int numero;
5 printf("Digite um numero: \
6 scanf("%d", &numero);
7 if (numero >= 0)
8 numero++; Console
play_arrow Executar
9 else
10 numero--;
11 printf("O novo valor de
12 }
Estruturas de repetição
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 70/124
14/11/22, 09:41 Linguagem C: recursos básicos
Comando for
Pseudocódigo
content_copy
Sintaxe do for.
Exemplo 14
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 71/124
14/11/22, 09:41 Linguagem C: recursos básicos
2 main()
3 {
4 int n;
5 for ( n=1; n <= 5; n++)
6 printf("N = %d \n", n);
7 } Console
play_arrow Executar
Recomendação
Exemplo 15
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main()
3 {
4 int n;
5 for (n=1; n<=20; n++)
6 if (! (n%2) )
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 72/124
14/11/22, 09:41 Linguagem C: recursos básicos
7 printf("
Console
8 } play_arrow Executar
Comando while
Pseudocódigo
content_copy
1 while (condição)
2 {
3 instrução1;
4 instrução2;
5 .........
6 instruçãoN;
7 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 73/124
14/11/22, 09:41 Linguagem C: recursos básicos
Sintaxe do while.
Note que quando o while possui várias instruções, temos que colocar o símbolo
{ no início e o símbolo } no final do bloco de comando.
Exemplo 16
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include<stdio.h>
2 int main() {
3 int n = 0;
4 while (n <= 5) {
5 printf("n = %d\n", n
6 n++;
7 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 74/124
14/11/22, 09:41 Linguagem C: recursos básicos
8 } Console
play_arrow Executar
Agora, vamos executar um programa que soma dois números inteiros lidos pelo
teclado. Após imprimir a soma, existe uma opção de permanecer ou sair do
programa usando o comando while. Lembre-se de colocar no campo de entrada
os valores que devem ser carregados nas variáveis.
Exemplo 17
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include<stdio.h>
2 int main() {
3 int n1, n2, soma, resposta
4 resposta = 1;
5 while(resposta == 1) {
6 printf("Digite val
7 scanf("%d", &n1);
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 75/124
14/11/22, 09:41 Linguagem C: recursos básicos
Comando do-while
Pseudocódigo
content_copy
1 do
2 {
3 instrução; // ou um conjunto de instruções
4 } while(condição);
Sintaxe do do-while.
Agora, vamos alterar o programa anterior para realizar a soma de dois números
inteiros, lidos pelo teclado, utilizando do-while. Após imprimir a soma, criar uma
opção de permanecer ou sair do programa.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 76/124
14/11/22, 09:41 Linguagem C: recursos básicos
Exemplo 18
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include<stdio.h>
2 int main() {
3 int n1, n2, soma, resposta
4 do
5 {
6 printf("Digite valor d
7 scanf("%d", &n1);
8 printf("Digite valor d Console
play_arrow Executar
9 scanf("%d", &n2);
10 soma = n1 + n2;
11 printf("Soma: %d\n", s
12 printf("Deseja continu
13 scanf("%d", &resposta)
14 while ((resposta != 1)
flag Linha 4
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 77/124
14/11/22, 09:41 Linguagem C: recursos básicos
flag Linhas 12 e 13
flag Linhas 14 a 18
flag Linha 19
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html#
di it ã 1 ã d ti 78/124
14/11/22, 09:41 Linguagem C: recursos básicos
digitar a opção 1, a execução do programa continua.
Atividade discursiva
Vamos praticar? Escreva um programa que conte o número de dígitos de um
número inteiro positivo. Você pode utilizar o emulador do exemplo 17 para testar
seu código. Para isso, basta apagar o exemplo e inserir o novo código.
Exibir soluçãoexpand_more
#include
int main(){
int n, num;
int contador = 0;
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 79/124
14/11/22, 09:41 Linguagem C: recursos básicos
scanf("%d", &num);
n = num;
do {
n = n / 10;
contador ++;
} while (n>0);
Loop infinito
O loop infinito é uma situação de exceção, pois, como o próprio nome diz, o
programa roda infinitamente, devido ao laço executar sem parar. Se quiser testar
os programas citados a seguir, tome cuidado, pois eles vão ficar rodando até
serem forçados externamente a parar. A forma para fazer isso depende do
software de desenvolvimento e do sistema operacional, bastando, na maioria
dos casos, fechar a janela do terminal/prompt. Caso não consiga pará-lo, é
preciso reiniciar o computador. Veja os exemplos:
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html#
Linguagem C
content_copy Linguagem C
content_copy 80/124
14/11/22, 09:41 Linguagem C: recursos básicos
Linguagem C
content_copy Linguagem C
content_copy
1 #include <stdio 1 #include <stdio
2 int main(){ 2 int main(){
3 for( ; ; 3 while(1) /
4 printf 4 printf
5 } 5 }
Desvios incondicionais
Os desvios incondicionais permitem o desvio do fluxo lógico de execução das
instruções sem a utilização de uma condição de controle. São eles:
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 81/124
14/11/22, 09:41 Linguagem C: recursos básicos
A instrução break pode ser tanto usada para terminar um teste case
dentro de um bloco switch, quanto para interromper a execução de um
laço.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 82/124
14/11/22, 09:41 Linguagem C: recursos básicos
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 84/124
14/11/22, 09:41 Linguagem C: recursos básicos
Questão 2
Analise o programa abaixo e considere que o valor lido para a variável num
seja 5. Qual das opções apresenta a saída correta após a execução do
comando for?
#include
int main(){
int num;
scanf("%d", &num);
}
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 85/124
14/11/22, 09:41 Linguagem C: recursos básicos
A 12345
B 531
C 4210
D 54321
E 12354
Observe que no comando for a variável i inicia com um valor inicial (i = num),
pelo enunciado o valor 5, e depois vai sendo decrementada (i--), portanto,
imprimindo os valores 5 4 3 2 1.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 86/124
14/11/22, 09:41 Linguagem C: recursos básicos
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 87/124
14/11/22, 09:41 Linguagem C: recursos básicos
A seguir, vamos descrever três tipos: vetor (ou array), matrizes e strings.
Vetores unidimensionais
Conjunto de elementos consecutivos do mesmo tipo, que podem ser acessados
individualmente a partir de um único nome e um índice. A forma geral da
declaração de vetores unidimensionais é:
Linguagem C
content_copy
Onde:
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 88/124
14/11/22, 09:41 Linguagem C: recursos básicos
contém. Obs.: O
tamanho do vetor é
constante.
Uma coisa importante que deve ser notada é que o tamanho do vetor é
constante. A seguir, veja alguns exemplos de como devemos declarar vetores:
Linguagem C
content_copy
Vetores unidimensionais.
Atenção
Em C, não há verificação de limites em vetores. O programador deverá ter
cuidado para que não ultrapasse o fim de um vetor.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 89/124
14/11/22, 09:41 Linguagem C: recursos básicos
Linguagem C
content_copy
1 int vetor[6];
Criação de um vetor.
O que a instrução do exemplo significa? A instrução criou uma variável vetor que
pode armazenar até 6 valores do tipo inteiro, como ilustrado a seguir:
Vetor.
Como houve apenas a definição do vetor, ele não contém valores armazenados.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 90/124
14/11/22, 09:41 Linguagem C: recursos básicos
vetor[0] = 120;
vetor[5] = vetor[0]*3;
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 91/124
14/11/22, 09:41 Linguagem C: recursos básicos
Veja um exemplo:
Linguagem C
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 92/124
14/11/22, 09:41 Linguagem C: recursos básicos
A segunda forma de atribuição inicial de valores pode ser feita usando estrutura
de repetição, como, por exemplo, o comando for. No exemplo a seguir, o vetor é
inicializado com o valor 0 para todos os n elementos de x.
Linguagem C
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 93/124
14/11/22, 09:41 Linguagem C: recursos básicos
Exemplo 1
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 #define DIM 5
3
4 int main (void) {
5 int vetor[DIM];
6 unsigned int i, num;
7 printf ("Este programa
8 printf ("Digite o nume Console
play_arrow Executar
9 scanf("%d", &num );
10 /* Geração do conjunto
11 for (i = 0 ; i < DIM ;
12 vetor[i] = num ++;
13 /* Impressão do conjun
14 for (i = 0; i < DIM ;
code Linha 2
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 94/124
14/11/22, 09:41 Linguagem C: recursos básicos
code Linha 5
code Linha 9
code Linha 12
code Linha 14
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 95/124
14/11/22, 09:41 Linguagem C: recursos básicos
code Linha 15
Strings
String é um conjunto de caracteres terminado por um caractere nulo e
armazenado em um vetor. O caractere nulo é representado como ’\0’ (código
ASCII = 0).
String Caracteres
char vetor[6] = “aluno”; char vetor[6] = {‘a’, ‘l’, ‘u’, char vetor[ ] = “aluno”;
‘n’, ‘o’};
Atenção
A terceira forma não precisa colocar o tamanho do vetor, pois o compilador vai
armazenar com o tamanho da palavra mais o caractere /0 na última posição.
A
string está armazenada como: vetor[0] = ‘a’, vetor[1] = ‘l’ , vetor[2] = ‘u’ , vetor[3] =
‘n’, vetor[4] = ‘o’, vetor[5] = ‘\0’.
Exemplo 2
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main() {
3 //O tamanho do vetor depend
4 char frase[ ] = "Estou gost
5
6 //número de caracteres da s
7 printf("Tamanho de frase =
8 Console
play_arrow Executar
9 for (int i = 0; i < sizeof(
10 printf("frase[%d]='%c'\
11 //Note que o último car
12 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 97/124
14/11/22, 09:41 Linguagem C: recursos básicos
O programa a seguir imprime a frase “Bom dia” com as funções printf() e puts().
Exemplo 3
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 int main()
3 {
4 char texto[15] = "Bom dia";
5 printf("%s\n", texto);
6 puts(texto);
7 puts("Bom dia");
8 } Console
play_arrow Executar
Matrizes
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 98/124
14/11/22, 09:41 Linguagem C: recursos básicos
Até o momento, vimos como podíamos trabalhar com vetores com uma única
dimensão. Vamos agora aprender como usar vetores com mais de uma
dimensão.
Linguagem C
content_copy
Fórmula 1
sizeof(tipo)*dim1*dim2*dim3*...*dimN
Por exemplo, a declaração int matriz[3][5]; define uma matriz de 3 linhas por 5
colunas. Usando a Fórmula 1, o espaço ocupado na memória pela matriz é de
sizeof(int) * 3 * 5. Considerando que o tipo inteiro ocupe 4 bytes: (4 bytes) * 3 *
5 = 60 bytes. A matriz é armazenada na memória linha a linha.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 99/124
14/11/22, 09:41 Linguagem C: recursos básicos
Endereço de
Valor armazenado
memória
1000 m[0][0]
1004 m[0][1]
1008 m[0][2]
1012 m[1][0]
1016 m[1][1]
1020 m[1][2]
1024 m[2][0]
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 100/124
14/11/22, 09:41 Linguagem C: recursos básicos
Endereço de
Valor armazenado
memória
1028 m[2][1]
1032 m[2][2]
Tabela: Matriz m.
Cada elemento é acessado por meio dos índices correspondentes para cada
dimensão. Sintaxe de acesso a um elemento:
Linguagem C
content_copy
1 nome [índice1][índice2]...[índiceN]
Sintaxe de índices.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 101/124
14/11/22, 09:41 Linguagem C: recursos básicos
Exemplo de índice.
A atribuição inicial de valores pode ser feita entre chaves ou com o laço for:
C
content_copy C
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 102/124
14/11/22, 09:41 Linguagem C: recursos básicos
Observe novamente o exemplo com for e note que o segundo for e o comando
de atribuição “m[i][j]=0;” estão dentro do for externo.
Exemplo 4
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include <stdio.h>
2 #define NRLINHAS 3
3 #define NRCOLUNAS 5
4
5 int main ( ) {
6 int M[NRLINHAS][NRCOLUNAS]
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 103/124
14/11/22, 09:41 Linguagem C: recursos básicos
code Linhas 2 e 3
code Linha 6
code Linhas 9 a 13
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html#
F i ã d l t d ti l ái 104/124
14/11/22, 09:41 Linguagem C: recursos básicos
Fazem a inserção dos elementos da matriz pelo usuário por
meio de 15 iterações, sendo i o índice da linha e j o índice da
coluna.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 105/124
14/11/22, 09:41 Linguagem C: recursos básicos
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 106/124
14/11/22, 09:41 Linguagem C: recursos básicos
Linguagem C
content_copy
1 int idade;
2 char sexo, estado_civil;
3 char Nome[60];
4 int dia_nascimento;
5 char mes_nascimento[12];
6 int ano_nascimento;
No entanto, essa solução não é a mais aconselhável, pois nada nos diz que as
variáveis estão relacionadas entre si. Para resolver isso, podemos criar uma
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 107/124
14/11/22, 09:41 Linguagem C: recursos básicos
estrutura de dados para agregar esses dados. Ela é chamada de registro (ou
struct, em inglês). Vejamos sua sintaxe:
Linguagem C
content_copy
1 struct nome_estrutura {
2 tipo1 campo1, campo2;
3 ...
4 tipoN campo;
5 } ;
Sintaxe do struct.
Linguagem C
content_copy
1 struct Aluno {
2 char Nome[60];
3 int idade;
4 char sexo, estado_civil;
5 int dia_nascimento;
6 char mes_nascimento[12];
7 int ano_nascimento;
8 } ;
9
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 108/124
14/11/22, 09:41 Linguagem C: recursos básicos
Sintaxe do struct.
Atenção
Aluno não é uma variável, mas sim o nome pelo qual é conhecida essa nova
definição de tipo de dados.
Linguagem C
content_copy
Em que:
Pseudocódigo
content_copy
1 struct nome_estrutura {
2 tipo1 campo1, campo2;
3 ...
4 tipoN campo;
5 } v1,v2, ...,vn ;
6
Linguagem C
content_copy
1 struct aluno {
2 char Nome[60];
3 int idade;
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 110/124
14/11/22, 09:41 Linguagem C: recursos básicos
Pseudocódigo
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 111/124
14/11/22, 09:41 Linguagem C: recursos básicos
Sintaxe de typedef.
Linguagem C
content_copy
Linguagem C
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 112/124
14/11/22, 09:41 Linguagem C: recursos básicos
Uma estrutura pode ser inicializada quando é declarada por meio da seguinte
sintaxe:
Linguagem C
content_copy
1 #include<stdio.h>
2 typedef struct t_aluno {
3 char nome[40];
4 char curso[40];
5 } aluno;
6
7 int main() {
8 aluno joao = {“Joao da Silva”, “Curso de Programação”}
9 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 113/124
14/11/22, 09:41 Linguagem C: recursos básicos
Pseudocódigo
content_copy
1 nome_variavel_estrutura.nome_elemento
Exemplo 5
info_outlineTUTORIAL
d content_copyCOPIAR
C Input
1 #include<stdio.h>
2 typedef struct t_aluno {
3 char nome[40];
4 char curso[22];
5 } aluno;
6 int main() {
7 aluno joao = {"Joao da Silva
8 printf("%s - %s", joao.nome, Console
play_arrow Executar
9 }
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 114/124
14/11/22, 09:41 Linguagem C: recursos básicos
flag Linhas 2 a 5
flag Linha 7
flag Linha 8
1. Por meio da instrução typedef, defina um tipo aluno a partir de uma estrutura
contendo os elementos nome (até 40 caracteres) e nota.
Obs.: Você pode utilizar o emulador do último exemplo para testar seu código.
Para isso, basta apagar o exemplo e inserir o novo código.
Exibir soluçãoexpand_more
#include
#define TAMANHO 5
char nome[41];
float nota;
} aluno;
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 116/124
14/11/22, 09:41 Linguagem C: recursos básicos
int main()
aluno alunos[TAMANHO];
float soma = 0;
{
scanf("%f", &alunos[i].nota);
}
soma += alunos[i].nota;
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 117/124
14/11/22, 09:41 Linguagem C: recursos básicos
Questão 1
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
char palavras[3][30];
scanf("%s", &palavras[i]);
}
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 118/124
14/11/22, 09:41 Linguagem C: recursos básicos
printf("%s
",palavras[i]);
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 119/124
14/11/22, 09:41 Linguagem C: recursos básicos
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 120/124
14/11/22, 09:41 Linguagem C: recursos básicos
Considerações finais
Neste conteúdo, vimos que a linguagem C apresenta quatro tipos de dados
básicos: char, int, float e double. Podemos declarar variáveis para cada tipo,
armazenando valores, de acordo com a finalidade do programa. Os números
inteiros são representados pelo tipo int e as variáveis reais são representadas
pelo float e double. As variáveis do tipo char armazenam caracteres. A leitura e a
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 121/124
14/11/22, 09:41 Linguagem C: recursos básicos
escrita de valores podem ser realizadas por meio das funções scanf() e printf(),
respectivamente, utilizando os formatos para cada tipo. Por exemplo: %d para
int, e %f para float.
O teste de condições pode ser realizado por meio das instruções if-else e
switch. Na instrução if-else, a condição é avaliada e, caso seja verdadeira, é
executada a instrução associada ao if. A componente else é executada quando a
condição devolve o valor lógico falso. A instrução switch adapta-se
particularmente à tomada de decisões em que o número de possibilidades é
elevado (em geral, maior que 2, se não usamos o if-else), de modo a reduzir a
complexidade de if-else consecutivos e encadeados. Já as instruções de
repetição while, for e do-while executam uma ou mais instruções enquanto
determinada condição for verdadeira.
headset Podcast
Ouça o podcast. Nele, falamos como os recursos básicos da linguagem C
podem ser utilizados para a resolução de problemas.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 122/124
14/11/22, 09:41 Linguagem C: recursos básicos
Referências
DAMAS, L. Linguagem C. 10. ed. Rio de Janeiro: LTC, 2007.
Explore +
Para saber mais sobre as estruturas empregadas neste estudo, pesquise sobre
Linguagem C Programação Descomplicada.
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 123/124
14/11/22, 09:41 Linguagem C: recursos básicos
https://stecine.azureedge.net/repositorio/00212ti/02576/index.html# 124/124