M01
M01
FUNDAMENTOS DE
ALGORITMOS
SEMANA 1
1
ING. Sly Stalim SANCHEZ SAAVEDRA
LOGRO DE LA SESIÓN
Al termino de la sesión los estudiantes estarán en la condición de:
• Conocer conceptos fundamentales del lenguaje de programación en C#.
• Identificación y uso del entorno desarrollo integrado “IDE” para desarrollo de software.
• Conocer el uso de operadores aritméticos, lógicos.
• Conocer y utilizar los tipos de datos para la elaboración de un programa en consola
• Declarar y utilizar variables de forma correcta para la elaboración de un programa.
• Desarrollar aplicaciones sencillas con estructuras condicionales simple y dobles.
TEMARIO
Algunos Inconvenie
son
Alto Nivel ntes
Necesitan
Se
usan
Bajo Nivel Compiladores Interpretes Ventaja No los interpreta
directamente el
Inconvenientes ordenador.
Lenguaje
Circuitos integrados Máquina
Difíciles de Algunos
confeccionar. son
Complicado para los
usuarios. Menos complicados de
tipos programar.
Ventaja Solo es necesario
conocer las
Ensamblador instrucciones del
lenguaje.
Permite tener mejor
Lo que mejor entiende el documentación.
traductor
procesador. Son mas fáciles de
Se parece al lenguaje mantener.
maquina.
Lenguaje Maquina Son rápidos
¿Qué es .NET?
Compilación en .Net
Plataforma de .dll
desarrollo
.exe
Net 6
Multiplataforma
Gratis y de código abierto
¿QUE
¿QUEESESUN
UNFRAMEWORK?
FRAMEWORK?
Entorno de Trabajo
VISUAL STUDIO
PRODUCTIVO
HERRAMIENTA DE TRABAJO
¿Qué es C#?
Declarativa LINQ
Funcional
Características Principales Multiparadigma
Lógico
Para que sirve :
Multiplataforma Sintaxis Similares
Ranking de los lenguajes de programación mas usados en el 2022
Es un conjunto de
pasos lógicos y El método de multiplicación rusa consiste en
estructurados que multiplicar sucesivamente por 2 el multiplicando y
nos permiten dar Algoritmo
solución aún dividir por 2 el multiplicador hasta que el multiplicador
problema tome el valor 1. Luego, se suman todos los
Problemas multiplicandos correspondientes a los multiplicadores
impares.
Estructura Ejercicios: Dicha suma es el producto de los dos números. La
Entrada Proceso Salida Multiplicar 37 x 12
siguiente tabla muestra el cálculo realizado para
METODOS
✓ Método Tradicional
Es la Es el Son los ✓ Método Ruso
introducción conjunto de resultados
de datos para operaciones a obtenidos a
✓ Método Hindú
ser realizar para través del
transformados dar solución proceso.
. al problema
Algoritmos y su representación
ALGORITMO: ALGORITMO:
¿? Diagrama de Flujo /
Problema Lenguaje de programación
Pseudocódigo
Código fuente
a
Código maquina
ALGORITMO GRÁFICO
Inicio
Leer N Inicio
Leer N
N>0
N>0
F V
Fin
Fin
Diagrama de flujo Diagrama N-S
ALGORITMO NO GRÁFICO
Inicio
Escribir "Ingresar numero: "
Leer n
si n>0 entonces
Imprimir n, "es positivo";
sino
Imprimir n, "es negativo";
fin si
PROGRAMA INFORMATICO: Conjunto de instrucciones escritas en cualquier
Fin
lenguaje de programación y que ejecutadas secuencialmente resuelvan un
problema en específico.
Pseudo código
https://www.microsoft.com/en-
https://sourceforge.net/projects/sharpdevelop/ us/download/details.aspx?id=26368
Reconocimiento del IDE SharpDevelop
Creación de un proyecto en C#
Reconocimiento del IDE SharpDevelop
https://visualstudio.microsoft.com/es/downloads/
Reconocimiento del IDE Visual Studio
https://dotnetfiddle.net/
TIPO DE DATOS
TIPO DATOS
1 Falso o Verdadero.
bool Valor booleano
Valor binario verdadero o falso (true/false)
Variables en C#
Variable Declaración
Tipo de dato + nombre de variable
Un identificador puede:
❖ Empezar por "_".
❖ Contener caracteres Unicode en mayúsculas y minúsculas (sensible a Asignación
mayúsculas y minúsculas).
Un identificador no puede:
❖ Empezar por un número.
❖ Empezar por un símbolo, ni aunque sea una palabra clave.
❖ Contener más de 511 caracteres.
Tipos de datos
Variables en C#
• Declaración de variables en C#
// Declaramos la variable, pero no la inicializamos con ningún valor.
int miNumero;
const
Ejemplo 1
𝑁 ( 𝑁 + 1)
𝑆=
2
• Ejemplo 1
using System;
namespace Ejemplo1._1
{
class ejemplo1
{
static void Main(string[] args)
{
int n, s;
string linea;
Console.Write("Ingrese numero: ");
linea = Console.ReadLine();
n = int.Parse(linea);
s = (n * (n + 1)) / 2;
Ejemplo 2
Obtener el radio y longitud de un circulo en C#
2
area = 𝜋 ⋅ 𝑟
𝑙𝑜𝑛𝑔𝑖𝑡𝑢𝑑 = 2 ⋅ 𝜋 ⋅ 𝑟
L
A
• Ejemplo 2
using System;
namespace Ejemplo1._2
{
class Program
{
static void Main(string[] args)
{
const double PI = 3.14159;
double a, p, r;
string linea;
Console.Write("Radio: ");
linea = Console.ReadLine();
r = double.Parse(linea);
a = PI * (r * r);
p = 2 * PI * r;
Console.Write("\nArea: " + a);
Console.Write("\nPerimetro: " + p);
Console.ReadKey();
}
}
}
Ejemplos
Ejemplo 3
Crear un programa que realice el calculo del índice de
masa corporal (IMC)
• Ejemplo 3
using System;
namespace clases
{
class Program
{
static void Main(string[] args)
{
int Peso;
double Altura, IMC;
}
}
}
Ejemplos
• Ejemplo 4
• Crear un programa en C# que permita calcular el sueldo de un
trabajador en base a las horas trabajadas y el costo hora del
trabajador serán ingresados por teclados.
• Ejemplo 4
using System;
namespace Ejemplo1._3
{
class Program
{
static void Main(string[] args)
{
double sueldo, hora_tra, hora_costo;
string linea;
• Operador de asignación “ = ”
int A = (B = (C = (D = 12)));
Operadores y equivalencias de asignación de C#
Ejemplo 1. Operadores y equivalencias de asignación de C#
using System;
namespace Ejemplo2._1
{
class Program
{
static void Main(string[] args)
{
int c = 3, d = 5, e = 4, f = 6, g = 12;
c += 7; //c = c + 7;
d -= 4; //d = d - 4;
e *= 5; //e = e * 5;
f /= 3; //f = f / 3;
g %= 9; //g = g % 9;
Console.WriteLine("Resultado c = {0}", c);
Console.WriteLine("Resultado d = {0}", d);
Console.WriteLine("Resultado e = {0}", e);
Console.WriteLine("Resultado f = {0}", f);
Console.WriteLine("Resultado g = {0}", g); Console.ReadKey();
}
}
}
Operadores aritméticos, lógicos y relacionales
OPERADORES
• Operadores relacionales
• Operadores lógicos
Operador lógico AND (&&) Operador lógico OR (||) Operador lógico NOT (!)
=((4^5)*(2^(1/3))*(4^2))/(((2^3)^1/2)*8^2))
EJERCICIO
2 2
ⅆ + 5 𝑏 − 3𝑎𝑐 𝑎
4𝑎
Operadores aritméticos, lógicos y relacionales
Expresión
Operador Llamado Explicación
de ejemplo
Incrementar a en 1, después utilizar el
++ Pre incremento ++ a nuevo valor de a en la expresión en que
esta variable reside.
Usar el valor actual de a en la expresión en
++ Post incremento a ++ la que esta variable reside, después
incrementar a en 1.
Decrementar b en 1, después utilizar el
-- Pre decremento -- a nuevo valor de b en la expresión en que
esta variable reside.
Usar el valor actual de b en la expresión en
-- Post decremento a -- la que esta variable reside, después
decrementar b en 1.
Ejemplo 5. Operadores de incremento y decremento en C#
using System;
namespace Ejemplo2._3
{
class Program
{
static void Main(string[] args)
{
int c;
c = 5; // asigna 5 a c
Console.WriteLine("c = {0}",c); // imprime 5
Console.WriteLine("c++ = {0}", c++); // imprime 5 y después pos incrementa
Console.WriteLine("c = {0}", c); // imprime 6
Console.WriteLine(); // salta una línea
c = 5; // asigna 5 a c
Console.WriteLine("c = {0}", c); // imprime 5
Console.WriteLine("++c = {0}", ++c); // pre incrementa y después imprime 6
Console.WriteLine("c = {0}", c); // imprime 6
Console.ReadKey();
}
}
}
EXPRESIONES
ARITMÉTICAS Y
FUNCIONES MATEMÁTICAS
Expresiones aritméticas y funciones matemáticas
• Funciones matemáticas
Función Descripción
Abs(x) Valor absoluto
Acos(x) Arco coseno
Asin(x) Arco seno
Atan(x) Arco tangente
Ceiling(x) El valor entero superior a x y mas cercano a él
Cos(x) Coseno
Cosh(x) Coseno hiperbólico
Exp(x) Exponencial de x (e elevado a x)
Floor(x) El mayor valor entero que es menor que x
Log(x) Logaritmo natural (o neperiano, en base "e")
• Funciones matemáticas
Función Descripción
Log10(x) Logaritmo en base 10
Pow(x,y) x elevado a y
Round(x, cifras) Redondea un número
Sin(x) Seno
Sinh(x) Seno hiperbólico
Sqrt(x) Raíz cuadrada
Tan(x) Tangente
Tanh(x) Tangente hiperbólica
Console.WriteLine();
Console.WriteLine("Valor absoluto : " + RESUL);
Console.WriteLine("Potencia : " + Math.Pow(NUM1, 5));
Console.WriteLine("Raíz cuadrada : " +
Math.Sqrt(NUM1));
Console.WriteLine("Núm. máximo : " +
Math.Max(NUM1,55));
Console.WriteLine("Núm. mínimo : " +
Expresiones aritméticas y funciones matemáticas
• Ejemplo 5
using System; }
Ejemplo 5
namespace Ejercicio1
}
{
class Program
{
static void Main(string[] args)
{
double a, b, c;
string linea;
c = Math.Sqrt(Math.Pow(a,2) + Math.Pow(b,2));
Console.WriteLine();
Console.Write("El valor de la hipotenusa es:
{0}",c);
Console.ReadKey();
}
Expresiones aritméticas y funciones matemáticas
Ejemplo 6
• Escribir un programa en C# que permita resolver una ecuación
cuadrática. (Restricciones los datos ingresados son números
positivos mayores a cero)
Ejemplo 6
using System;
Console.WriteLine("x1 = {0}",x1);
namespace Ejercicio2 Console.WriteLine("x2 = {0}",x2);
{ Console.ReadKey();
class Program }
{ }
static void Main(string[] args) }
{
double a, b, c, x1, x2, raiz;
string linea;
• Ejemplos:
NO
• ¿Elijo la carrera A o la carrera B?.
FIN
Estructuras Condicionales simples y doble
namespace Ejemplo2._5
{ Ejemplo 7. Estructuras condicionales
class Program
{
static void Main(string[] args)
{
int edad; string linea;
if (num % 2 == 0)
{
Console.WriteLine("\n{0} es un número par", num);
}
else
{
Console.WriteLine("\n{0} es un número impar", num);
}
Console.ReadKey();
}
}
}
Estructuras Condicionales simples y doble
Ejemplo 9
Ejemplo10
if (c <= 100)
{
m_d = c * 0.10;
}
else
{
m_d = c * 0.20;
}
• Ferguson, J., Patterson, B. and Beres, J., 2003. La Biblia De C#. 1st ed. Madrid: Grupo Anaya S.A.
• Bell, D., 2020. C# Para Estudiantes. 1st ed. México: PEARSON EDUCACIÓN,.
• Cosio, L. and Arrioja, N., 2010. C#. 1st ed. Buenos Aires: Manual Users.
• Ruiz García, J., 2020. Libro C# Yellow Book. [online] Jesús Ruiz García – Blog. Available at:
<https://jesusruizgarcia.wordpress.com/2018/05/30/libro-c-yellow-book-2016-edicion-8-2-en-espanol/>