Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O ponto de partida usual para um programador C++ é um aplicativo "Olá, mundo!" que é executado na linha de comando. Você começa com isso neste artigo e, em seguida, passa para algo mais desafiador: um aplicativo de calculadora.
Pré-requisitos
- Visual Studio com a carga de trabalho Desenvolvimento de aplicativos de desktop com C++ instalado e em execução em seu computador. Para instalá-lo, consulte Instalar o suporte do C++ no Visual Studio.
- Este tutorial demonstra um recurso chamado editar e continuar, o que permite que você faça alterações no código enquanto o aplicativo está em execução. Para habilitar a edição e continuar, no menu principal, selecione Ferramentas>Opções>de Depuração>Geral e verifique se Exigir arquivos de origem para corresponder exatamente à versão original .
Criar seu projeto de aplicativo
O Visual Studio usa projetos para organizar o código de um aplicativo e soluções para organizar um ou mais projetos. Um projeto contém todas as opções, configurações e regras usadas para criar um aplicativo. Ele também gerencia a relação entre todos os arquivos do projeto e todos os arquivos externos. Para criar seu aplicativo, primeiro, crie um novo projeto e uma solução.
Iniciar o Visual Studio – a caixa de diálogo Iniciar do Visual Studio é exibida. Selecione Criar um novo projeto para começar.
A caixa de diálogo tem opções para clonar um repositório, abrir um projeto ou solução, abrir uma pasta local e criar um novo projeto."
Na caixa de diálogo Criar um novo projeto , defina a lista suspensa de idiomas como C++, defina a lista suspensa da plataforma como Windows, selecione Aplicativo de Console na lista de tipos de projeto e selecione Avançar.
A lista suspensa de idiomas é definida como C++, a lista suspensa da plataforma é definida como Windows e tipos de projeto como Projeto Vazio, Aplicativo de Console, Projeto do CMake, Assistente da Área de Trabalho do Windows e assim por diante, aparecem na lista de tipos de projeto."
Importante
Selecione a versão C++ do modelo de Aplicativo de Console . Ele tem as marcas C++, Windows e Console e o ícone tem "++" no canto.
Na caixa de diálogo Configurar seu novo projeto, selecione a caixa de texto Nome do projeto , nomeie seu novo projeto CalculatorTutorial e selecione Criar.
Um aplicativo de console do Windows C++ vazio 'Hello World' é criado. Os aplicativos de console usam uma janela do console do Windows para exibir a saída e aceitar a entrada do usuário. No Visual Studio, uma janela do editor é aberta e mostra o código gerado:
// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> int main() { std::cout << "Hello World!\n"; } // Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Debug program: F5 or Debug > Start Debugging menu // Tips for Getting Started: // 1. Use the Solution Explorer window to add/manage files // 2. Use the Team Explorer window to connect to source control // 3. Use the Output window to see build output and other messages // 4. Use the Error List window to view errors // 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project // 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Verifique se seu novo aplicativo compila e executa
O modelo para um novo aplicativo de console do Windows cria um aplicativo simples C++ "Olá, Mundo". Neste ponto, você pode ver como o Visual Studio cria e executa os aplicativos que você cria diretamente do IDE.
Para criar seu projeto, selecione Criar Solução no menu Compilar . A janela de saída mostra os resultados do processo de compilação.
Para executar o código, na barra de menus, selecione Depurar>Iniciar sem depuração (Ctrl+F5).
Uma janela do console é aberta e seu aplicativo é executado dentro dela.
Quando você inicia um aplicativo de console no Visual Studio, ele executa seu código e, em seguida, imprime "Pressione qualquer tecla para fechar esta janela. . para permitir que você veja o resultado.
Parabéns! Você criou seu primeiro aplicativo de console "Olá, mundo!" no Visual Studio!
Pressione uma tecla para ignorar a janela do console e retornar ao Visual Studio.
Agora você tem as ferramentas para criar e executar seu aplicativo após cada alteração, para verificar se o código ainda funciona conforme o esperado. Mais tarde, mostraremos como depurá-lo caso algo dê errado.
Editar o código
Agora, vamos modificar o código neste modelo para ser um aplicativo de calculadora.
Substitua o conteúdo do arquivo
CalculatorTutorial.cpp
pelo código a seguir para que ele corresponda a este exemplo:// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> using namespace std; int main() { cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; return 0; } // Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Debug program: F5 or Debug > Start Debugging menu // Tips for Getting Started: // 1. Use the Solution Explorer window to add/manage files // 2. Use the Team Explorer window to connect to source control // 3. Use the Output window to see build output and other messages // 4. Use the Error List window to view errors // 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project // 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Noções básicas sobre o código:
- A
#include
instrução importa código de outros arquivos. Às vezes, você pode ver um nome de arquivo cercado por colchetes angulares como<iostream>
. As aspas angulares instruem o compilador a procurar o arquivo de cabeçalhoiostream
primeiro nos diretórios padrão do sistema e, se não for encontrado, procurar nos diretórios específicos do projeto. Outras vezes, você pode ver um nome de arquivo cercado por aspas como"someHeader.h"
. As aspas instruem o compilador a ignorar a procura nos diretórios padrão do sistema e, em vez disso, apenas procurar nos diretórios específicos do projeto. - O
using namespace std;
informa ao compilador para esperar que o código da Biblioteca Padrão C++ seja usado neste arquivo. Sem essa linha, cada palavra-chave da biblioteca teria que ser precedidastd::
para indicar seu escopo. Por exemplo, sem essa linha, cada referência acout
seria escrita comostd::cout
. Ausing
instrução é adicionada para tornar mais conveniente acessar o código em outro namespace. - A
cout
palavra-chave é usada para imprimir a saída padrão em C++. O operador<<
instrui o compilador a enviar tudo que está à sua direita para a saída padrão. - A
endl
palavra-chave é como a tecla Enter; ela termina a linha e move o cursor para a próxima linha. É uma melhor prática colocar um\n
dentro da string (contida por""
) para fazer a mesma coisa, porqueendl
sempre limpa o buffer, o que pode prejudicar o desempenho do programa. No entanto, como este é um aplicativo muito pequeno,endl
é usado em vez disso. - Todas as instruções C++ devem terminar com ponto-e-vírgula e todos os aplicativos C++ devem conter uma
main()
função. Essa função é o que o programa executa no início. Todo o código deve estar acessível a partir demain()
para ser usado.
- A
Para salvar o arquivo, pressione Ctrl+S ou selecione o ícone de disco disquete na barra de ferramentas na barra de menus.
Para executar o aplicativo, pressione Ctrl+F5 ou vá para o menu Depurar e selecione Iniciar sem Depuração. Você deve ver uma janela do console aparecer com esta aparência.
Feche a janela do console quando terminar.
Adicionar código para fazer algumas matemáticas
Uma classe é como um blueprint para um objeto que faz algo. Nesse caso, definimos uma classe de calculadora para conter a lógica matemática.
Adicionar uma classe calculadora
Vá para o menu Projeto e selecione Adicionar Classe. Na caixa de edição Nome da Classe , insira Calculadora. Selecione OK.
O campo nome da classe contém a calculadora de texto. O campo de arquivo .h contém Calculator.h. O campo de arquivo .cpp contém Calculator.cpp. O campo de classe base está vazio. As opções para embutido e Gerenciado são desmarcadas.
Dois novos arquivos são adicionados ao seu projeto. Para salvar todos os arquivos alterados de uma só vez, pressione Ctrl+Shift+S. É um atalho de teclado para salvar>todos os arquivos. Há também um botão de barra de ferramentas para Salvar Tudo, um ícone de dois disquetes, encontrado ao lado do botão Salvar . Em geral, é uma boa prática fazer Salvar Tudo com frequência, para que você não perca o salvamento de nenhuma alteração.
O assistente Adicionar Classe cria
.h
e.cpp
arquivos que têm o mesmo nome da classe. Você pode ver uma lista completa dos arquivos de projeto na janela do Gerenciador de Soluções , visível no lado do IDE. Se a janela não estiver visível, abra-a na barra de menus por meio de Exibir>Gerenciador de Soluções.O projeto do tutorial da calculadora possui um nó de arquivos de cabeçalho que inclui o arquivo Calculator.h. O nó de arquivos de origem contém Calculator.cpp e CalculatorTutorial.cpp. Nodes para referências, dependências externas e arquivos de recursos estão visíveis, mas colapsados.
Você pode abrir um arquivo clicando duas vezes nele na janela do Gerenciador de Soluções . Clique duas vezes
Calculator.h
para abri-lo.Substitua o conteúdo de
Calculator.h
pelo seguinte código, de forma que o arquivo fique assim:#pragma once class Calculator { public: double Calculate(double x, char oper, double y); };
Compreender o código
- Esse código declara uma nova função chamada
Calculate
, que manipula operações matemáticas para adição, subtração, multiplicação e divisão. - O código C++ é organizado em arquivos de cabeçalho (
.h
) e arquivos de origem (.cpp
). Algumas outras extensões de arquivo são compatíveis com vários compiladores, mas estas são as principais que você deve conhecer. Funções e variáveis são normalmente declaradas, ou seja, dado um nome e um tipo, em arquivos de cabeçalho, e implementadas, ou dada uma definição, em arquivos de origem. Para acessar o código definido em outro arquivo, você pode usar#include "filename.h"
, ondefilename.h
está o nome do arquivo que declara as variáveis ou funções que você deseja usar. - É uma boa prática organizar seu código em arquivos diferentes com base no que ele faz, portanto, é fácil encontrar o código de que você precisa mais tarde. Em nosso caso, definimos a
Calculator
classe separadamente do arquivo que contém amain()
função, mas planejamos fazer referência àCalculator
classe emmain()
.
- Esse código declara uma nova função chamada
Um rabiscos verde aparece embaixo
Calculate
porque, embora aCalculate
função seja declarada, ela não está definida. Passe o mouse sobreCalculate
, clique na seta para baixo no ícone da chave de fenda e selecione Criar definição de 'Calcular' emCalculator.cpp
.Este código é adicionado a
Calculator.cpp
:A definição da função é: calculadora dupla::Calculate( double x, char oper, double y) { return 0.0; }
Atualmente, ele retorna apenas 0,0. Vamos mudar isso.
Alterne para o arquivo
Calculator.cpp
na janela do editor. Substitua o conteúdo deCalculator::Calculate(double x, char oper, double y)
:double Calculator::Calculate(double x, char oper, double y) { switch(oper) { case '+': return x + y; case '-': return x - y; case '*': return x * y; case '/': return x / y; default: return 0.0; } }
Compreender o código
- A função
Calculate
usa um número, um operador e um segundo número. Em seguida, ele executa a operação solicitada nos dois números. - A
switch
instrução verifica qual operador foi fornecido e executa o caso correspondente a essa operação. O casodefault:
é uma alternativa caso o usuário digite um operador que não seja tratado por nenhuma das declarações anteriorescase
. É melhor lidar com a entrada de usuário inválida de uma maneira mais elegante, mas isso está além do escopo deste tutorial. - A
double
palavra-chave indica um tipo de número que dá suporte a decimais. Esse tipo de número é chamado de número de ponto flutuante edouble
significa um número de ponto flutuante que tem precisão extra. Dessa forma, a calculadora pode lidar tanto com operações matemáticas decimais quanto inteiras. ACalculate
função é necessária para sempre retornar um número de ponto flutuante de precisão dupla devido aodouble
início do código (isso indica o tipo de retorno da função), razão pela qual retornamos 0,0 no caso padrão. - O
.h
arquivo declara o protótipo de função, que informa ao compilador antecipadamente quais parâmetros ele requer e qual tipo de retorno espera dele. O.cpp
arquivo tem todos os detalhes de implementação da função.
- A função
Se você compilar e executar o código novamente neste ponto, ele sairá imediatamente depois de perguntar qual operação executar. Portanto, modifique a main
função para fazer vários cálculos.
Chamar as funções de membro da Calculator
classe
Atualize a função
main
noCalculatorTutorial.cpp
da seguinte maneira:// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> #include "Calculator.h" using namespace std; int main() { double x = 0.0; double y = 0.0; double result = 0.0; char oper = '+'; cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; Calculator c; while (true) { cin >> x >> oper >> y; result = c.Calculate(x, oper, y); cout << "Result " << "of " << x << oper << y << " is: " << result << endl; } return 0; }
Compreender o código
- Como os programas C++ sempre começam na
main()
função, precisamos chamar nosso outro código a partir daí, portanto, uma instrução#include
é necessária para tornar esse código visível para nossamain()
função. - As variáveis
x
,y
eoper
result
são declaradas para armazenar o primeiro número, o segundo número, o operador e o resultado final, respectivamente. É sempre uma boa prática dar-lhes alguns valores iniciais para evitar um comportamento indefinido, que é o que é feito aqui. - A
Calculator c;
linha declara um objeto nomeadoc
como uma instância daCalculator
classe. A classe em si é apenas um blueprint para como as calculadoras funcionam; o objeto é a calculadora específica que faz a matemática. - A
while (true)
instrução é um loop. O código dentro do loop é executado repetidamente, desde que a condição dentro do()
loop seja verdadeira. Como a condição é simplesmente listada comotrue
, ela é sempre verdadeira, portanto, o loop é executado para sempre. Para fechar o programa, o usuário deve fechar manualmente a janela do console. Caso contrário, o programa sempre aguarda uma nova entrada. - A
cin
palavra-chave aceita a entrada do usuário. O fluxo de entrada é inteligente o suficiente para processar uma linha de texto inserida na janela do console e colocá-la dentro de cada uma das variáveis listadas, em ordem. - A
c.Calculate(x, oper, y);
expressão chama aCalculate
função definida anteriormente e fornece os valores de entrada inseridos e a operação solicitada. Em seguida, a função retorna um número armazenado emresult
. - Por fim,
result
é impresso no console e o usuário vê o resultado do cálculo.
- Como os programas C++ sempre começam na
Compilar e testar o código novamente
Agora, teste o programa novamente para garantir que tudo funcione corretamente.
Pressione Ctrl+F5 para recompilar e iniciar o aplicativo.
Insira
5+5
e pressione Enter. Verifique se o resultado é 10.O aplicativo gera a mensagem: insira a operação a ser executada. Formato: a+b | a-b | a*b | a/b. O usuário inseriu 5+5. A saída do aplicativo: o resultado de 5+5 é: 10
Interrompa o programa fechando a janela do console.
Depurar o aplicativo
Como o usuário é livre para digitar qualquer coisa na janela do console, vamos verificar se a calculadora lida com entradas inesperadas. Em vez de executar o programa, vamos depurá-lo para que possamos inspecionar o que ele está fazendo passo a passo.
Executar o aplicativo no modo de depuração
In
CalcuatorTutorial.cpp
, defina um ponto de interrupção na linha:result = c.Calculate(x, oper, y);
. Para definir o ponto de interrupção, clique ao lado da linha na barra vertical cinza ao longo da borda esquerda da janela do editor para que um ponto vermelho apareça.Agora, quando depuramos o programa, a execução é pausada nessa linha. Já temos uma ideia aproximada de que o programa funciona para casos simples. Como não queremos pausar a execução toda vez que chamarmos
Calculate()
, vamos tornar o ponto de interrupção condicional.Clique com o botão direito do mouse no ponto vermelho que representa o ponto de interrupção e selecione Condições. Na caixa de edição da condição, insira
(y == 0) && (oper == '/')
. Selecione o botão Fechar para salvar a condição do ponto de interrupção.O ponto de interrupção está na linha: result = c dot Calculate ( x, oper, y). 'Condições...' A opção Condição está marcada. A lista suspensa Condições é definida como "Expressão Condicional". A lista suspensa de condição é definida como "É verdadeiro". A condição é definida como y == 0 && oper == '/'.
Agora, a execução pausa no ponto de interrupção quando o aplicativo tenta dividir por 0.
Para depurar o programa, pressione F5 ou selecione o botão de barra de ferramentas Do depurador local do Windows que tem o ícone de seta verde. Em seu aplicativo de console, se você inserir algo como "5 a 0", o programa se comportará normalmente e continuará em execução. No entanto, se você digitar "10/0", ele pausará no ponto de interrupção. Você pode colocar qualquer número de espaços entre o operador e os números:
cin
é inteligente o suficiente para analisar a entrada adequadamente.
Janelas úteis no depurador
Ao depurar seu código, você poderá notar que algumas novas janelas são exibidas. Essas janelas podem melhorar sua experiência de depuração. Dê uma olhada na janela Autos . A janela Autos mostra os valores atuais das variáveis usadas pelo menos três linhas antes e até a linha atual. Se você não vir a janela Autos , no menu principal, selecione Depurar>Windows>Autos.
O valor do oper é 47 '/', o resultado é 5, x é 10 e y é 0.
Para ver todas as variáveis dessa função, alterne para a janela Locais . Como essa é uma função pequena, a janela Autos e Locais mostra as mesmas variáveis. Mas você pode modificar os valores dessas variáveis na janela Locais durante a depuração para ver o efeito que elas teriam no programa. Nesse caso, nós os deixamos em paz. Abra a janela Locais selecionando Locais na parte inferior da janela Autos ou selecionando no menu principal Depurar>Locais do>.
O valor do oper é 47 '/', o resultado é 0, x é 10 e y é 0.
Você também pode passar o mouse sobre variáveis no código para ver seus valores atuais no ponto em que a execução está pausada no momento. Verifique se a janela do editor está em foco clicando nela primeiro.
Continuar depurando
A seta amarela à esquerda mostra o ponto atual de execução. As chamadas
Calculate
de linha atuais, portanto, pressione F11 para Entrar na função. Agora você está executando o código no corpo daCalculate
função. Tenha cuidado com Step Into pois ele avança para dentro de qualquer função na linha onde você está, incluindo as funções da biblioteca padrão. É bom entrar na biblioteca padrão, mas você pode estar mais interessado em se concentrar em seu código em vez de código de biblioteca.Agora que o ponto de execução está no início da
Calculate
função, pressione F10 para passar para a próxima linha na execução do programa. F10 também é conhecido como Step Over. Você pode usar o Step Over para mover de linha em linha, sem se aprofundar nos detalhes do que está ocorrendo em cada parte da linha. Em geral, você deve usar Step Over em vez de Step Into , a menos que você queira mergulhar mais profundamente no código que está sendo chamado de outro lugar (como você fez para alcançar o corpo deCalculate
).Continue usando F10 para percorrer cada linha até voltar à
main()
função no outro arquivo e parar nacout
linha.O programa está fazendo o que é esperado: ele pega o primeiro número e o divide pelo segundo. Na linha
cout
, passe o mouse sobre a variávelresult
ou dê uma olhadaresult
na janela Autos. Seu valor éinf
, que não parece certo.A instrução atual no depurador é cout << "Result is: " << resultado << endl; Na janela automática, o resultado é inf.
Vamos corrigi-lo. A
cout
linha gera qualquer valor armazenadoresult
, portanto, quando você avança mais uma linha usando F10, a janela do console exibe:O aplicativo comunica: Por favor, insira a operação a ser executada. Formato: a+b | a-b | a*b | a/b. O usuário inseriu 5-0. A saída do aplicativo: Resultado é: 5. O usuário inseriu 10/0. A saída do aplicativo: o resultado é: inf
Esse resultado ocorre porque a divisão por zero é indefinida, portanto, o programa não tem uma resposta numérica para a operação solicitada.
Corrigir o erro "dividir por zero"
Vamos lidar com a divisão por zero de forma mais elegante, para que seja mais fácil para o usuário compreender o problema.
Faça as seguintes alterações em
CalculatorTutorial.cpp
. Você pode deixar o programa em execução enquanto edita, graças a um recurso de depurador chamado Editar e Continuar. Adicione uma instruçãoif
a seguircin >> x >> oper >> y;
para verificar a divisão por zero e gerar uma mensagem para o usuário se isso acontecer. Caso contrário, o resultado será impresso.// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> #include "Calculator.h" using namespace std; int main() { double x = 0.0; double y = 0.0; double result = 0.0; char oper = '+'; cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; Calculator c; while (true) { cin >> x >> oper >> y; if (oper == '/' && y == 0) { cout << "Math error: Attempted to divide by zero!" << endl; continue; } else { result = c.Calculate(x, oper, y); } cout << "Result " << "of " << x << oper << y << " is: " << result << endl; } return 0; }
Pressione F5 uma vez. A execução do programa continua até que ele precise pausar para solicitar a entrada do usuário. Insira
10 / 0
novamente. Agora, uma mensagem mais útil é impressa. O usuário é solicitado a obter mais entradas e o programa continua em execução normalmente.A janela do console exibe duas linhas: 10/0 Resultado é: inf, seguido por 10/0 Erro matemático: tentativa de divisão por zero.
Observação
Quando você edita o código no modo de depuração, há o risco de o código ficar obsoleto. Isso acontece quando o depurador ainda está executando seu código antigo e ainda não o atualizou com suas alterações. O depurador exibe uma caixa de diálogo para informá-lo quando isso acontece. Às vezes, talvez seja necessário pressionar F5 para atualizar o código que está sendo executado. Em particular, se você fizer uma alteração dentro de uma função enquanto o ponto de execução estiver dentro dessa função, você precisará sair da função e voltar para ela novamente para obter o código atualizado. Se isso não funcionar e você vir uma mensagem de erro, você pode parar o processo de depuração clicando no quadrado vermelho na barra de ferramentas sob os menus no topo do IDE e começar novamente a depurar pressionando F5 ou clicando na seta verde de "play" ao lado do botão de parar na barra de ferramentas.
Outro motivo pelo qual a edição e a continuação podem falhar é se você vir uma mensagem que diz "A configuração 'Exigir que os arquivos de origem correspondam exatamente à versão original' em Depuração-Opções-Geral precisa estar habilitada..." Para corrigir isso, no menu principal, selecione >>Opções>Depuração>Geral e certifique-se de que > esteja marcada.
Noções básicas sobre os atalhos Executar e Depurar
- F5 ou Depurar>Iniciar Depuração inicia uma sessão de depuração, se ainda não estiver ativa, e executa o programa até que um ponto de interrupção seja atingido ou o programa precise de entrada do usuário. Se nenhuma entrada do usuário for necessária e nenhum ponto de interrupção estiver disponível para ser atingido, o programa será encerrado e a janela do console se fechará quando o programa terminar de ser executado. Se o programa for enviado para o console, use Ctrl+F5 ou defina um ponto de interrupção antes de pressionar F5 para manter a janela aberta.
- Ctrl+F5 ou Depurar>Iniciar sem Depuração executa o aplicativo sem entrar no modo de depuração. Isso é um pouco mais rápido do que executar a depuração, e a janela do console permanece aberta após o programa terminar de executar.
- F10, conhecido como Step Over, permite percorrer o código, linha por linha, e visualizar como o código é executado e quais são os valores das variáveis em cada etapa de execução.
- F11, conhecido como Step Into, funciona de forma semelhante a Step Over, exceto que ele entra em todas as funções chamadas na linha de execução. Por exemplo, se a linha que está sendo executada chamar uma função, pressionar F11 move o ponteiro para o corpo da função, para que você possa seguir o código da função que está sendo executada antes de voltar para a linha na qual você começou. Ao pressionar F10, avança sobre a chamada de função e apenas se move para a próxima linha; a chamada de função ainda ocorre, mas o programa não para para mostrar o que está fazendo.
Fechar o aplicativo
- Se ele ainda estiver em execução, feche a janela do console para interromper o aplicativo de calculadora.
Adicionar controle do código-fonte do Git
Agora que você criou um aplicativo, convém adicioná-lo a um repositório Git. Temos a solução. O Visual Studio facilita esse processo com as ferramentas do Git que você pode usar diretamente do IDE.
Dica
O Git é o sistema de controle de versão moderno mais usado, portanto, se você é um desenvolvedor profissional ou está aprendendo a codificar, o Git pode ser muito útil. Se você é novo no Git, o site https://git-scm.com/ é um bom lugar para começar. Lá, você pode encontrar resumos, um livro online popular e vídeos de Conceitos Básicos do Git.
Para associar seu código ao Git, comece criando um novo repositório Git no qual seu código está localizado. Veja como:
Na barra de status no canto inferior direito do Visual Studio, selecione Adicionar ao Controle do Código-Fonte e selecione Git.
Na caixa de diálogo Criar um repositório Git , entre no GitHub.
O nome do repositório é preenchido automaticamente com base no local da pasta. Por padrão, seu novo repositório é privado, o que significa que você é o único que pode acessá-lo.
Dica
Se o repositório é público ou privado, é melhor ter um backup remoto do código armazenado com segurança no GitHub. Mesmo que você não esteja trabalhando com uma equipe, um repositório remoto disponibiliza seu código para você em qualquer computador.
Selecione Criar e Enviar por Push.
Depois de criar o repositório, os detalhes do status serão exibidos na barra de status.
O primeiro ícone com as setas mostra quantos commits de saída e entrada estão no branch atual. Você pode usar esse ícone para efetuar pull de qualquer commit de entrada ou efetuar push de commits de saída. Você também pode optar por exibir esses commits primeiro. Para fazer isso, selecione o ícone e selecione Exibir Saída/Entrada.
O segundo ícone com o lápis mostra o número de alterações não confirmadas no código. Você pode selecionar este ícone para ver essas alterações na janela de alterações do Git .
Para saber mais sobre como usar o Git com seu aplicativo, consulte a documentação de controle de versão do Visual Studio.
O aplicativo finalizado
Parabéns! Você concluiu o código do aplicativo de calculadora, compilou-o e depurou-o e adicionou-o a um repositório, tudo no Visual Studio.
Próximas etapas
O ponto de partida usual para um programador C++ é um aplicativo "Olá, mundo!" que é executado na linha de comando. Você começa com isso neste artigo e, em seguida, passa para algo mais desafiador: um aplicativo de calculadora.
Pré-requisitos
- Visual Studio com a carga de trabalho Desenvolvimento de aplicativos de desktop com C++ instalado e em execução em seu computador. Para instalá-lo, consulte Instalar o suporte do C++ no Visual Studio.
Criar seu projeto de aplicativo
O Visual Studio usa projetos para organizar o código de um aplicativo e soluções para organizar um ou mais projetos. Um projeto contém todas as opções, configurações e regras usadas para criar um aplicativo. Ele também gerencia a relação entre todos os arquivos do projeto e todos os arquivos externos. Para criar seu aplicativo, primeiro, crie um novo projeto e uma solução.
Na barra de menus do Visual Studio, selecione Arquivo>Novo>Projeto. A janela Novo Projeto é aberta.
Na barra lateral esquerda, verifique se o Visual C++ está selecionado. No centro, selecione Aplicativo de Console.
Na caixa de texto Nome na parte inferior, nomeie o novo projeto CalculatorTutorial e selecione OK.
À esquerda, Outros Idiomas > Visual C++ está selecionado. No centro, o tipo de projeto de aplicativo console é selecionado. A caixa de texto Nome contém CalculatorTutorial.
Um aplicativo de console do Windows C++ vazio 'Hello World' é criado. Os aplicativos de console usam uma janela do console do Windows para exibir a saída e aceitar a entrada do usuário. No Visual Studio, uma janela do editor é aberta e mostra o código gerado:
// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> int main() { std::cout << "Hello World!\n"; } // Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Debug program: F5 or Debug > Start Debugging menu // Tips for Getting Started: // 1. Use the Solution Explorer window to add/manage files // 2. Use the Team Explorer window to connect to source control // 3. Use the Output window to see build output and other messages // 4. Use the Error List window to view errors // 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project // 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Verifique se seu novo aplicativo compila e executa
O modelo para um novo aplicativo de console do Windows cria um aplicativo simples C++ "Olá, Mundo". Neste ponto, você pode ver como o Visual Studio cria e executa os aplicativos que você cria diretamente do IDE.
Para criar seu projeto, selecione Criar Solução no menu Compilar . A janela de saída mostra os resultados do processo de compilação.
Para executar o código, na barra de menus, selecione Depurar, Iniciar sem depuração (Ctrl+F5).
Uma janela do console é aberta e seu aplicativo é executado dentro dela.
Quando você inicia um aplicativo de console no Visual Studio, ele executa seu código e, em seguida, imprime
Press any key to close this window . . .
para dar a você a chance de ver a saída.Parabéns! Você criou seu primeiro aplicativo de console "Olá, mundo!" no Visual Studio!
Pressione uma tecla para ignorar a janela do console e retornar ao Visual Studio.
Agora você tem as ferramentas para criar e executar seu aplicativo após cada alteração, para verificar se o código ainda funciona conforme o esperado. Mais tarde, mostraremos como depurá-lo caso algo dê errado.
Editar o código
Agora, vamos transformar o código neste modelo para ser um aplicativo de calculadora.
Substitua o conteúdo do arquivo
CalculatorTutorial.cpp
pelo código a seguir para que ele corresponda a este exemplo:// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> using namespace std; int main() { cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; return 0; } // Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Debug program: F5 or Debug > Start Debugging menu // Tips for Getting Started: // 1. Use the Solution Explorer window to add/manage files // 2. Use the Team Explorer window to connect to source control // 3. Use the Output window to see build output and other messages // 4. Use the Error List window to view errors // 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project // 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Noções básicas sobre o código:
- A
#include
instrução importa código de outros arquivos. Às vezes, você pode ver um nome de arquivo cercado por colchetes angulares como<iostream>
. As aspas angulares instruem o compilador a procurar o arquivo de cabeçalhoiostream
primeiro nos diretórios padrão do sistema e, se não for encontrado, procurar nos diretórios específicos do projeto. Outras vezes, você pode ver um nome de arquivo cercado por aspas como"someHeader.h"
. As aspas instruem o compilador a ignorar a procura nos diretórios padrão do sistema e, em vez disso, apenas procurar nos diretórios específicos do projeto. - O
using namespace std;
informa ao compilador para esperar que o código da Biblioteca Padrão C++ seja usado neste arquivo. Sem essa linha, cada palavra-chave da biblioteca teria que ser precedidastd::
para indicar seu escopo. Por exemplo, sem essa linha, cada referência acout
seria escrita comostd::cout
. Ausing
instrução é adicionada para tornar mais conveniente acessar o código em outro namespace. - A
cout
palavra-chave é impressa na saída padrão em C++. O operador<<
instrui o compilador a enviar tudo que está à sua direita para a saída padrão. - A
endl
palavra-chave é como a tecla Enter; ela termina a linha e move o cursor para a próxima linha. É uma melhor prática colocar um\n
dentro da cadeia de caracteres (contido por""
) para fazer a mesma coisa porqueendl
sempre limpa o buffer e pode prejudicar o desempenho do programa. No entanto, como este é um aplicativo muito pequeno,endl
é usado em vez disso. - Todas as instruções C++ devem terminar com ponto-e-vírgula e todos os aplicativos C++ devem conter uma
main()
função. Essa função é o que o programa executa no início. Todo o código deve estar acessível a partir demain()
para ser usado.
- A
Para salvar o arquivo, pressione Ctrl+S ou selecione o ícone de disco disquete na barra de ferramentas na barra de menus.
Para executar o aplicativo, pressione Ctrl+F5 ou vá para o menu Depurar e selecione Iniciar sem Depuração. Se você receber um pop-up informando que este projeto está desatualizado, você pode selecionar Não mostrar essa caixa de diálogo novamente e, em seguida, selecionar Sim para criar seu aplicativo. Você deve ver uma janela do console exibida com esta aparência:
O aplicativo de console mostra a saída que é: Aplicativo de Console da Calculadora. Insira a operação a ser executada. Formato: a+b | a-b | a*b | a/b. O processo foi encerrado com o código 0 e há uma mensagem informando que, para fechar automaticamente o console quando a depuração for interrompida, habilite Ferramentas > Opções > Depuração > Fechar automaticamente o console quando a depuração parar. Por fim, há uma mensagem para pressionar qualquer tecla para fechar esta janela.
Feche a janela do console quando terminar.
Adicionar código para fazer algumas matemáticas
Uma classe é como um blueprint para um objeto que faz algo. Nesse caso, definimos uma classe de calculadora para conter a lógica matemática.
Adicionar uma classe calculadora
Vá para o menu Projeto e selecione Adicionar Classe. Na caixa de edição Nome da Classe , insira Calculadora. Selecione OK.
O campo nome da classe contém a calculadora de texto. O campo de arquivo .h contém Calculator.h. O campo de arquivo .cpp contém Calculator.cpp. O campo de classe base está vazio. As opções para embutido e Gerenciado são desmarcadas.
Uma classe é como um blueprint para um objeto que faz algo. Nesse caso, definimos uma calculadora e como ela deve funcionar.
Dois novos arquivos são adicionados ao seu projeto. Para salvar todos os arquivos alterados de uma só vez, pressione Ctrl+Shift+S. É um atalho de teclado para salvar>todos os arquivos. Há também um botão de barra de ferramentas para Salvar Tudo, um ícone de dois disquetes, encontrado ao lado do botão Salvar . Em geral, é uma boa prática fazer Salvar Tudo com frequência, para que você não perca nenhum arquivo ao salvar.
O assistente Adicionar Classe cria
.h
e.cpp
arquivos que têm o mesmo nome da classe. Você pode ver uma lista completa dos arquivos de projeto na janela do Gerenciador de Soluções , visível no lado do IDE. Se o Gerenciador de Soluções não estiver visível, abra-o na barra de menus: selecione Exibir>Gerenciador de Soluções.O projeto do tutorial da calculadora tem um nó de arquivos de cabeçalho contendo Calculator.h, stdafx.h e targetver.h. O nó de arquivos de origem contém Calculator.cpp, CalculatorTutorial.cpp e stdafx.cpp. Nodes para referências, dependências externas e arquivos de recursos estão visíveis, mas colapsados.
Você pode abrir um arquivo clicando duas vezes nele na janela do Gerenciador de Soluções . Clique duas vezes
Calculator.h
para abri-lo.Substitua o conteúdo de
Calculator.h
pelo seguinte código, de forma que o arquivo fique assim:#pragma once class Calculator { public: double Calculate(double x, char oper, double y); };
Compreender o código
- Esse código declara uma nova função chamada
Calculate
, que manipula operações matemáticas para adição, subtração, multiplicação e divisão. - O código C++ é organizado em arquivos de cabeçalho (
.h
) e arquivos de origem (.cpp
). Algumas outras extensões de arquivo são compatíveis com vários compiladores, mas estas são as principais que você deve conhecer. Funções e variáveis são normalmente declaradas, ou seja, dado um nome e um tipo, em arquivos de cabeçalho, e implementadas, ou dada uma definição, em arquivos de origem. Para acessar o código definido em outro arquivo, você pode usar#include "filename.h"
, ondefilename.h
está o nome do arquivo que declara as variáveis ou funções que você deseja usar. - É uma boa prática organizar seu código em arquivos diferentes com base no que ele faz, portanto, é fácil encontrar o código de que você precisa mais tarde. Em nosso caso, definimos a
Calculator
classe separadamente do arquivo que contém amain()
função, mas planejamos fazer referência àCalculator
classe emmain()
.
- Esse código declara uma nova função chamada
Um rabiscos verde aparece embaixo
Calculate
porque, embora aCalculate
função seja declarada, ela não está definida. Passe o mouse sobreCalculate
, clique na seta para baixo na lâmpada e selecione Criar definição de 'Calcular' emCalculator.cpp
. Um pop-up é exibido que permite visualizar a alteração de código que foi feita no outro arquivo. O código foi adicionado aCalculator.cpp
.Atualmente, ele retorna apenas 0,0. Vamos mudar isso. Pressione Esc para fechar o pop-up e escolha Sim para salvar as alterações.
Alterne para o arquivo
Calculator.cpp
na janela do editor. Substitua o conteúdo do arquivo pelo seguinte código:#include "Calculator.h" double Calculator::Calculate(double x, char oper, double y) { switch(oper) { case '+': return x + y; case '-': return x - y; case '*': return x * y; case '/': return x / y; default: return 0.0; } }
Compreender o código
- A função
Calculate
usa um número, um operador e um segundo número. Em seguida, ele executa a operação solicitada nos dois números. - A
switch
instrução verifica qual operador foi fornecido e executa o caso correspondente a essa operação. O casodefault:
é uma alternativa caso o usuário digite um operador que não seja tratado por nenhuma das declarações anteriorescase
. É melhor lidar com a entrada de usuário inválida de uma maneira mais elegante, mas isso está além do escopo deste tutorial. - A
double
palavra-chave indica um tipo de número que dá suporte a decimais. Esse tipo de número é chamado de número de ponto flutuante edouble
significa um número de ponto flutuante que tem precisão extra. Dessa forma, a calculadora pode lidar tanto com operações matemáticas decimais quanto inteiras. ACalculate
função é necessária para sempre retornar um número de ponto flutuante de precisão dupla devido aodouble
início do código (isso indica o tipo de retorno da função), razão pela qual retornamos 0,0 no caso padrão. - O
.h
arquivo declara o protótipo de função, que informa ao compilador antecipadamente quais parâmetros ele requer e qual tipo de retorno espera dele. O.cpp
arquivo tem todos os detalhes de implementação da função.
- A função
Se você compilar e executar o código novamente neste ponto, ele ainda sairá depois de perguntar qual operação executar. Em seguida, modifique a main
função para fazer alguns cálculos.
Chamar as funções de membro da classe Calculadora
Atualize a função
main
noCalculatorTutorial.cpp
da seguinte maneira:// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> #include "Calculator.h" using namespace std; int main() { double x = 0.0; double y = 0.0; double result = 0.0; char oper = '+'; cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; Calculator c; while (true) { cin >> x >> oper >> y; result = c.Calculate(x, oper, y); cout << "Result is: " << result << endl; } return 0; }
Compreender o código
- Como os programas C++ sempre começam na
main()
função, precisamos chamar nosso outro código a partir daí, portanto, uma instrução#include
é necessária para tornar esse código visível para nossamain()
função. - As variáveis
x
,y
eoper
result
são declaradas para armazenar o primeiro número, o segundo número, o operador e o resultado final, respectivamente. É sempre uma boa prática dar-lhes alguns valores iniciais para evitar um comportamento indefinido, que é o que é feito aqui. - A
Calculator c;
linha declara um objeto nomeadoc
como uma instância daCalculator
classe. A classe em si é apenas um blueprint para como as calculadoras funcionam; o objeto é a calculadora específica que faz a matemática. - A
while (true)
instrução é um loop. O código dentro do loop é executado repetidamente, desde que a condição dentro do()
loop seja verdadeira. Como a condição é simplesmente listada comotrue
, ela é sempre verdadeira, portanto, o loop é executado para sempre. Para fechar o programa, o usuário deve fechar manualmente a janela do console. Caso contrário, o programa sempre aguarda uma nova entrada. - A
cin
palavra-chave aceita a entrada do usuário. O fluxo de entrada é inteligente o suficiente para processar uma linha de texto inserida na janela do console e colocá-la dentro de cada uma das variáveis listadas, em ordem. - A
c.Calculate(x, oper, y);
expressão chama aCalculate
função definida anteriormente e fornece os valores de entrada inseridos e a operação solicitada. Em seguida, a função retorna um número armazenado emresult
. - Por fim,
result
é impresso no console e o usuário vê o resultado do cálculo.
- Como os programas C++ sempre começam na
Compilar e testar o código novamente
Teste o programa novamente para garantir que tudo funcione corretamente.
Pressione Ctrl+F5 para recompilar e iniciar o aplicativo.
Insira
5+5
e pressione Enter. Verifique se o resultado é 10.Interrompa o programa fechando a janela do console.
Depurar o aplicativo
Como o usuário é livre para digitar qualquer coisa na janela do console, vamos verificar se a calculadora lida com entradas inesperadas. Em vez de executar o programa, vamos depurá-lo, para que possamos inspecionar o que ele está fazendo passo a passo.
Executar o aplicativo no modo de depuração
Em
CalcuatorTutorial.cpp
, defina um ponto de interrupção naresult = c.Calculate(x, oper, y);
linha. Para definir o ponto de interrupção, clique ao lado da linha na barra vertical cinza ao longo da borda esquerda da janela do editor para que um ponto vermelho apareça.Agora, quando você depura o programa, ele sempre pausa a execução nessa linha. Já temos uma ideia aproximada de que o programa funciona para casos simples. Como não queremos pausar a execução todas as vezes, vamos tornar o ponto de interrupção condicional.
Clique com o botão direito do mouse no ponto vermelho que representa o ponto de interrupção e selecione Condições. Na caixa de edição da condição, insira
(y == 0) && (oper == '/')
. Selecione o botão Fechar quando terminar para salvar a condição do ponto de interrupção.O ponto de interrupção está na linha: result = c dot Calculate ( x, oper, y). 'Condições...' A opção Condição está marcada. A lista suspensa Condições é definida como "Expressão Condicional". A lista suspensa de condição é definida como "É verdadeiro". A condição é definida como y == 0 && oper == '/'.
A execução será pausada no ponto de interrupção se uma divisão por 0 for tentada.
Para depurar o programa, pressione F5 ou selecione o botão de barra de ferramentas Local do Depurador do Windows que tem o ícone de seta verde. Em seu aplicativo de console, se você inserir algo como "5 a 0", o programa se comportará normalmente e continuará em execução. No entanto, se você digitar "10/0", ele pausará no ponto de interrupção. Você pode até mesmo colocar qualquer número de espaços entre o operador e os números;
cin
é inteligente o suficiente para analisar a entrada adequadamente.O usuário insere 5 menos 0. O aplicativo exibe: Resultado é 5. Em seguida, o usuário insere 10/0 e, como a condição para o ponto de interrupção condicional é atendida, a execução é interrompida na linha: resultado = c.Calculate(x, oper, y);
Janelas úteis no depurador
Ao depurar seu código, você poderá notar que algumas novas janelas são exibidas. Essas janelas podem melhorar sua experiência de depuração. Dê uma olhada na janela Autos . A janela Autos mostra os valores atuais das variáveis usadas pelo menos três linhas antes e até a linha atual. Se você não vir a janela Autos , no menu principal, selecione Depurar>Windows>Autos.
O valor do oper é 47 '/', o resultado é 5, x é 10 e y é 0.
Para ver todas as variáveis dessa função, alterne para a janela Locais . Como essa é uma função pequena, a janela Autos e Locais mostra as mesmas variáveis. Mas você pode modificar os valores dessas variáveis durante a depuração para ver o efeito que elas teriam no programa. Nesse caso, nós os deixamos em paz. Abra a janela Locais selecionando Locais na parte inferior da janela Autos ou selecionando no menu principal Depurar>Locais do>.
O valor do oper é 47 '/', o resultado é 0, x é 10 e y é 0.
Você também pode passar o mouse sobre variáveis no próprio código para ver seus valores atuais em que a execução está pausada no momento. Verifique se a janela do editor está em foco clicando nela primeiro.
Continuar depurando
A seta amarela à esquerda mostra o ponto atual de execução. A linha atual chama
Calculate
, então pressione F11 para Entrar na função, o que leva você para o corpo da funçãoCalculate
. Tenha cuidado com Step Into pois ele avança para dentro de qualquer função na linha onde você está, incluindo as funções da biblioteca padrão. É bom entrar na biblioteca padrão, mas você pode estar mais interessado em se concentrar em seu código em vez de código de biblioteca.Agora que o ponto de execução está no início da
Calculate
função, pressione F10 para passar para a próxima linha na execução do programa. F10 também é conhecido como Step Over. Você pode usar o Step Over para mover de linha em linha, sem se aprofundar nos detalhes do que está ocorrendo em cada parte da linha. Em geral, você deve usar Step Over em vez de Step Into, a menos que você queira mergulhar mais profundamente no código que está sendo chamado de outro lugar (como você fez para alcançar o corpo deCalculate
).Continue usando F10 para percorrer cada linha até voltar à
main()
função no outro arquivo e parar nacout
linha.O programa está fazendo o que é esperado: ele pega o primeiro número e o divide pelo segundo. Na linha
cout
, passe o mouse sobre a variávelresult
ou dê uma olhadaresult
na janela Autos. Seu valor éinf
, que não parece certo.A instrução atual no depurador é cout << "Result is: " << resultado << endl; Na janela automática, o resultado é inf.
Vamos corrigi-lo. A
cout
linha gera qualquer valor armazenadoresult
, portanto, quando você avança mais uma linha usando F10, a janela do console exibe:O aplicativo comunica: Por favor, insira a operação a ser executada. Formato: a+b | a-b | a*b | a/b. O usuário inseriu 5-0. A saída do aplicativo: Resultado é: 5. O usuário inseriu 10/0. A saída do aplicativo: o resultado é: inf
Esse resultado ocorre porque a divisão por zero é indefinida, portanto, o programa não tem uma resposta numérica para a operação solicitada.
Corrigir o erro "dividir por zero"
Vamos lidar com a divisão por zero de forma mais elegante, para que seja mais fácil para o usuário compreender o problema.
Faça as seguintes alterações em
CalculatorTutorial.cpp
. (Você pode deixar o programa em execução enquanto edita, graças a um recurso de depurador chamado Editar e Continuar). A alteração é adicionar uma instruçãoif
a seguircin >> x >> oper >> y;
para verificar a divisão por zero e gerar uma mensagem para o usuário se isso acontecer. Caso contrário, o resultado será impresso:// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> #include "Calculator.h" using namespace std; int main() { double x = 0.0; double y = 0.0; double result = 0.0; char oper = '+'; cout << "Calculator Console Application" << endl << endl; cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl; Calculator c; while (true) { cin >> x >> oper >> y; if (oper == '/' && y == 0) { cout << "Division by 0 exception" << endl; continue; } else { result = c.Calculate(x, oper, y); } cout << "Result is: " << result << endl; } return 0; }
Pressione F5 uma vez. A execução do programa continua até que ele precise pausar para solicitar a entrada do usuário. Insira
10 / 0
novamente. Agora, uma mensagem mais útil é impressa. O usuário é solicitado a obter mais entradas e o programa continua em execução normalmente.Observação
Quando você edita o código no modo de depuração, há o risco de o código ficar obsoleto. Isso acontece quando o depurador ainda está executando seu código antigo e ainda não o atualizou com suas alterações. O depurador abre uma caixa de diálogo para informá-lo quando isso acontece. Às vezes, talvez seja necessário pressionar F5 para atualizar o código que está sendo executado. Em particular, se você fizer uma alteração dentro de uma função enquanto o ponto de execução estiver dentro dessa função, saia da função e volte para ela novamente para obter o código atualizado. Se isso não funcionar por algum motivo e você vir uma mensagem de erro, você poderá parar de depurar clicando no quadrado vermelho na barra de ferramentas abaixo dos menus na parte superior do IDE e, em seguida, começar a depurar novamente pressionando F5 ou escolhendo a seta verde de "executar" ao lado do botão de parar na barra de ferramentas.
Outro motivo pelo qual a edição e a continuação podem falhar é que você precisa ir para o menu principal e selecionarOpções> de Ferramentas>Depuração>Geral e garantir que exigir arquivos de origem para corresponder exatamente à versão original está marcada.
Noções básicas sobre os atalhos Executar e Depurar
- F5 ou Depurar>Iniciar Depuração inicia uma sessão de depuração, se ainda não estiver ativa, e executa o programa até que um ponto de interrupção seja atingido ou o programa precise de entrada do usuário. Se nenhuma entrada do usuário for necessária e nenhum ponto de interrupção estiver disponível para ser atingido, o programa será encerrado e a janela do console se fechará quando o programa terminar de ser executado. Se o programa for enviado para o console, use Ctrl+F5 ou defina um ponto de interrupção antes de pressionar F5 para manter a janela aberta.
- Ctrl+F5 ou Depurar>Iniciar sem Depuração executa o aplicativo sem entrar no modo de depuração. Isso é um pouco mais rápido do que executar a depuração, e a janela do console permanece aberta após o programa terminar de executar.
- F10, conhecido como Step Over, permite percorrer o código, linha por linha, e visualizar como o código é executado e quais são os valores das variáveis em cada etapa de execução.
- F11, conhecido como Step Into, funciona de forma semelhante a Step Over, exceto que ele entra em todas as funções chamadas na linha de execução. Por exemplo, se a linha que está sendo executada chamar uma função, pressionar F11 move o ponteiro para o corpo da função, para que você possa seguir o código da função que está sendo executada antes de voltar para a linha na qual você começou. Ao pressionar F10, avança sobre a chamada de função e apenas se move para a próxima linha; a chamada de função ainda ocorre, mas o programa não para para mostrar o que está fazendo.
Fechar o aplicativo
- Se ele ainda estiver em execução, feche a janela do console para interromper o aplicativo de calculadora.
O aplicativo finalizado
Parabéns! Você concluiu o código do aplicativo de calculadora, compilou e depurou no Visual Studio.