/** * ============================================================================ * PHM Open Source — Curso de Lógica e Programação em C * Módulo 01: Entrada, Saída e Tipos de Dados Primitivos * Autor: Prof. Paulo Henrique Maciel · PHM Tech * ============================================================================ * * OBJETIVO DIDÁTICO: * Compreender a estrutura básica de um programa em C, inclusão de bibliotecas, * a função principal main(), especificadores de formato de printf/scanf e os * tipos de dados fundamentais (int, float, double, char). * * COMO COMPILAR E EXECUTAR: * Terminal Linux/Mac: gcc 01_ola_mundo_e_tipos.c -o modulo01 && ./modulo01 * Terminal Windows: gcc 01_ola_mundo_e_tipos.c -o modulo01.exe && modulo01.exe * ============================================================================ */ #include // Biblioteca padrão para funções de Entrada e Saída (printf, scanf) #include // Suporte a tipos booleanos (true/false) no padrão C99 int main(void) { // 1. DECLARAÇÃO E INICIALIZAÇÃO DE VARIÁVEIS PRIMITIVAS int idade = 21; // Número inteiro (ocupa normalmente 4 bytes) float altura = 1.75f; // Ponto flutuante de precisão simples (4 bytes) double peso = 68.450; // Ponto flutuante de dupla precisão (8 bytes) char inicial = 'P'; // Caractere individual em aspas simples (1 byte) bool matriculado = true; // Booleano (1 para verdadeiro, 0 para falso) // 2. EXIBIÇÃO DE MENSAGENS FORMATADAS (printf) printf("====================================================\n"); printf(" PHM TECH — CURSO DE C · MODULO 01: TIPOS E I/O \n"); printf("====================================================\n\n"); printf("[1] Exibindo valores com especificadores de formato:\n"); printf(" - Inicial do Aluno : %c\n", inicial); // %c para char printf(" - Idade Informada : %d anos\n", idade); // %d ou %i para int printf(" - Altura (metros) : %.2f m\n", altura); // %.2f formata para 2 casas decimais printf(" - Peso Corporal : %.3f kg\n", peso); // %.3f formata para 3 casas decimais printf(" - Status Matricula : %s\n\n", matriculado ? "Ativa (true)" : "Inativa (false)"); // 3. ENTRADA DE DADOS DO USUÁRIO VIA TECLADO (scanf) int anoNascimento; printf("[2] Leitura de dados do teclado:\n"); printf("Digite o ano em que voce nasceu: "); // O operador & (endereço) passa o local da memória onde o valor será guardado if (scanf("%d", &anoNascimento) == 1) { int idadeCalculada = 2026 - anoNascimento; printf(" -> Voce tem (ou completara) aproximadamente %d anos em 2026!\n", idadeCalculada); } else { printf(" -> Erro: Entrada invalida! Esperava-se um numero inteiro.\n"); } printf("\n[3] Tamanho dos tipos na memoria deste computador:\n"); printf(" - sizeof(char) = %zu byte\n", sizeof(char)); printf(" - sizeof(int) = %zu bytes\n", sizeof(int)); printf(" - sizeof(float) = %zu bytes\n", sizeof(float)); printf(" - sizeof(double) = %zu bytes\n", sizeof(double)); // Retorno 0 indica ao Sistema Operacional que o programa finalizou com SUCESSO return 0; }