Buscar

elaborar um programa que por meio de uma sub-rotina apresente como resultado um numero positivo mesmo que a entrada tenha sido feita por um negativo

algoritmo livro do manzano editora erika 2000

💡 5 Respostas

User badge image

Joao Andre MArtins Dias

/*
 * File:   main.cpp
 * Author: joao
 * elaborar um programa que por meio de uma sub-rotina.
 * Apresente como resultado um numero positivo mesmo que a entrada tenha sido feita por um negativo
 * IFMT
 * Created on 21 de Agosto de 2017, 16:16
 */

#include <cstdlib>
#include<stdio.h>

using namespace std;

int positivo(int x) {
    return (x < 0) ? -x : x;
}

int main(int argc, char** argv) {
    int nun;
    printf("Digite um numero:");
    scanf("%d", &nun);
    while (nun != 0) {
        printf("\nNumero[%d]\n ", positivo(nun));
        printf("Digite um numero:");
        scanf("%d", &nun);

    }
}

0
Dislike0
User badge image

Joao Andre MArtins Dias

Boa tarde espero que ajude.

Resolvi em linguagem C, nao estava no enunciado qual linguagem, mas da forma como esta fica simples converter para qualquer outra linguagem.

Eu fiz uma funçao que retorna um inteiro e recebe um inteiro como parametro. No corpo da funçao utilizei um operador ternario, que funciona da seguinte forma (Teste logico)?resposta se verdadeiro:resposta se falso;

Desta forma se o valor passado como parametro na funçao for negativo a funçao retorna o proprio valor com o sinal trocado, caso contrario retorna o proprio parametro x. (x<0)?-x:x;

 

0
Dislike0
User badge image

Andre Smaira

elaborar um programa que por meio de uma sub-rotina apresente como resultado um numero positivo mesmo que a entrada tenha sido feita por um negativo

algoritmo livro do manzano editora erika 2000


Seguindo o escopo do problema, escreveremos um sub-rotina que fara as seguintes operações para nós:

-Se a entrada for negativa, passamos para positiva, para isto multiplicamos ela por -1;

-A saída da sub-rotina deve ser um número positivo, logo se a entrada for 0, adicionamos 1 para contemplar a condição.

-Se a entrada for positiva, simplesmente retornamos ela.


#include<stdio.h>

int sub_rotina_retorna_numero_sempre_positivo(int numero) {

if(numero < 0){ //Inverte o sinal quando a entrada for negativa

return numero * -1;

}

if(numero == 0){ //Adiciona 1 se a entrada for 0 para respeitar o escopo

return numero + 1;

}

//Se for positivo o retorno simplesmente

return numero;

}

int main() {

int resultado, valor_calcular;

//Atribuo um valor qualquer

printf("Informe um inteiro qualquer (Positivo ou Negativo): ");

scanf("%d", &valor_calcular);

printf("\n");

//Chama sub-rotina para fazer o calculo

resultado = sub_rotina_retorna_numero_sempre_positivo(valor_calcular);

printf("Resultado da Sub-rotina: %d", resultado);

return 0;

}

0
Dislike0

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais