Tarea realizar una presentación de 1 a 3 láminas por tema o concepto 1.2 Definición de: Algoritmo, Lenguaje de Programación, Programa, Programación, Paradigmas de programación, Editores de texto, Compiladores e intérpretes, Ejecutables, Consola de línea de comandos, diagrama de flujo y símbolos que lo conforman. 1.3 Análisis de problemas. 1.4 Representación de algoritmos: gráfica y pseudocódigo. 1.5 Diseño de algoritmos aplicados a problemas. 1.6 Diseño algorítmico de funciones Programación Básica. ¿Qué es la programación? Son lenguajes de programación, que buscan de forma estructurada y secuencial realizar acciones que normalmente realizan los seres vivíos o sistemas físicos, matemáticos, biológicos etc. Algoritmo: Secuencia de pasos estructurados y secuenciales para replicar un fenómeno físico, biológico, matemático etc. (depende de la experiencia del programador) Ejemplo 1: La suma dos números. Algoritmo Sumar dos números que se encuentren entre 1 – 9 Indicar el primer valor a sumar Almacenamos el primer valor Indicar el segundo valor a sumar Almacenamos el segundo valor Aplicar la operación de suma Desplegar el resultado Utilizaremos dos funciones: printf(“ ”); Sirve para imprimir desde consola scanf(“ ”); Sirve para almacenar en dirección de memoria un dato Código //Este programa realiza la suma de dos numeros #include<stdio.h> int main(){ int x,y,suma; printf("\n Programa que suma dos numeros"); printf("\n Introduzca el primer valor="); scanf("%d",&x); printf("\n Introduzca el segundo valor="); scanf("%d",&y); suma = x+y; printf("\n La suma es = %d",suma); } Actividad de clase: Realizar un programa que calcule el porcentaje de una cantidad. Algoritmo Código //Este programa realiza la suma de dos numeros #include<stdio.h> int main(){ float x,y,por; printf("\n Introduzca una cantidad = "); scanf("%f",&x); printf("\n Introduzca el porcentaje = "); scanf("%f",&y); por=x*y/100; printf("\n El resultado es = %f",por); } Actividad de clase: Realizar un código que calcule el área de un pentágono Realizar un programa que calcule la división Algoritmo Introducir el valor a dividir Almacenar el valor Introducir el valor que dividirá Almacena ese valor Realización de la operación Imprime resultado Introducir el valor a dividir Almacenar el valor Introducir el valor que dividirá Almacena ese valor Revisar que el segundo valor sea diferente a cero Imprimir error Realización de la operación Imprime resultado #include<stdio.h> int main(){ float x,y,div; printf("\n Introduzca el primer valor = "); scanf("%f",&x); printf("\n Introduzca el segundo valor = "); scanf("%f",&y); if(y != 0){ div=x/y; printf("\n Reultado = %.3f",div); }else printf("\n Error"); } //0.3 controla a tresdecimales Operadores Aritméticos Operadores relacionales y lógicos Operadores Lógicos Secuencia de escape Carácter Sonido Retroceso Tabulador Horizontal Tabulador vertical Nueva línea Avance de página Retroceso de carro Comillas Comillas simples Signo de interrogación Barra inclinada hacia atrás Nulo Tipo de Datos Secuencia de escape \a \b \t \v \n \f \r \” \’ \? \\ \0 Valor de ASCH 007 008 009 011 010 012 013 034 039 063 092 000 Tipo de dato Int Especificadores de formato %d Comentario Entero con signo Float %f Real con signo Char %c carácter Char [n] %s Cadena de caracteres Tipo de dato Palabra reservada Ejemplo Entero Int Int numero=0; Real Float Float numero=12.2; Carácter Char Char letra = ‘a’; Cadena de carácter Char Char palabra[10] = “HOLA”; Estructura if else Se utiliza para realizar un test lógico y a llevar a cabo una de las posibles acciones, dependiendo del resultado del test (de que sea cierto o falso la expresión). If (expresión) { Instrucción 1; } else Instrucción 2; //Ejemplo de división int main(){ float x,y,resultado; printf("\n Introduzca el primer valor = "); scanf("%f",&x); printf("\n Introduzca el segundo valor = "); scanf("%f",&y); if(y==0){ printf("\n No se puede dividir entre cero"); }else { resultado = x/y; printf("\n Division = %f",resultado); } } Actividad: Resolver las ecuaciones de segundo grado siguientes 𝑭(𝒙) = 𝒙𝟐 + 𝟐𝒙 − 𝟖 Soluciones reales 𝑭(𝒙) = 𝟑𝒙𝟐 + 𝟔𝒙 + 𝟖 Soluciones complejas Algoritmos: Se solicita el valor a Se almacena el valor a como flotante Se solicita el valor b Se almacena el valor b como flotante Se solicita el valor c Se almacena el valor c como flotante Aplicar la formula general “Caso positivo” Aplicar la formula general “Caso negativo” Imprimir el resultado real X1 Imprimir el resultado real X2 Se solicita el valor a Se almacena el valor a como flotante Se solicita el valor b Se almacena el valor b como flotante Se solicita el valor c Se almacena el valor c como flotante Determinar si las soluciones son reales o complejas √𝑏 2 − 4𝑎𝑐 𝑏 2 − 4𝑎𝑐 > 0 Reales y diferentes 𝑏 2 − 4𝑎𝑐 = 0 Reales e iguales 𝑏 2 − 4𝑎𝑐 < 0Complejas Si las soluciones son reales if Imprimir que son reales Aplicar la formula general “Caso positivo” Aplicar la formula general “Caso negativo” Imprimir el resultado real X1 Imprimir el resultado real X2 Si las soluciones son complejas else Las raíces son complejas Aplicaría valor absoluto al descrinarte |𝑏 2 − 4𝑎𝑐| Le saco raíz a la discriminante √|𝑏 2 − 4𝑎𝑐| Calcular le valor real Calcular el valor imaginario Imprimir el resultado complejo X1 completando la i y el signo del imaginario Imprimir el resultado complejo X2 completando la i y el signo del imaginario #include<stdio.h> #include<stdlib.h> #include<math.h> //operaciones matematicas como potencia o raiz int main(){ float a,b,c,x1,x2,absolut,raiz,real,ima; printf("\n Introduzca el valor a = "); scanf("%f",&a); printf("\n Introduzca el valor b = "); scanf("%f",&b); printf("\n Introduzca el valor c = "); scanf("%f",&c); if(b*b-4*a*c>=0){ printf("\n Las raices son Reales"); x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); printf("\n X1 = %f",x1); printf("\n X2 = %f",x2); }else { printf("\n Las raices son complejas"); absolut=abs(b*b-4*a*c); raiz=sqrt(absolut); real=(-b)/(2*a); ima=raiz/(2*a); printf("\n x1 = %f + %f i",real,ima); printf("\n x2 = %f - %f i",real,ima); } } Estructura FOR El bucle for se puede leer como «para la condición dada repite», esta estructura se encarga de repetir de forma cíclica un conjunto de instrucciones que se encuentren dentro del bucle, esta repetición se realizará hasta que se cumpla la condición de parada que definamos for (Expresión-de-inicio; Condición finalización; incremento) { Instrucciones del ciclo. } #include<stdio.h> int main(){ int i; printf("\n\t\t Tabla de multiplicacion "); for(i=1;i<=10;i++){ printf("\n %d x 8 = %d",i,i*8); } } #include<stdio.h> int main(){ int i,x,multi; printf("\n\t\t Tabla de multiplicacion = "); scanf("%d",&x); for(i=1;i<=10;i++){ multi=i*x; printf("\n %d x %d = %d",i,x,multi); } } #include<stdio.h> int main(){ int i,j; for(i=1,j=10;i<=10,j>=1;i++,j--){ printf("\n %d %d",i,j); } } #include<stdio.h> #define F(x) (x*x+x-6) int main(){ int a,b,i; printf("\n Valor minimo a tabular = "); scanf("%d",&a); printf("\n Valor maximo a tabular = "); scanf("%d",&b); printf("\n %5s | %3s","x","F(X)"); for(i=a;i<=b;i++){ printf("\n %5d | %3d ",i,F(i)); } } Programas: 1) 2) 3) 4) Calcular volumen de una pirámide con base rectangular o cuadrada. Descomponer la magnitud de un vector 2D en sus ejes coordenados Realizar la sumatoria de n vectores en 2D for Realizar un menú con la estructura if else, el menú será de cuatro operaciones aritméticas. Las que ustedes gusten. Ejercicio: Se tiene que dos barcos A y B empujar a un tercer barco C, Se desea calcular la fuerza resultante y por ende conocer la magnitud, dirección y sentido. 5) Resolver Descomponer el vector A: En su componente en X: 𝑥` cos 20 = 50 X = 50 cos 20 Cierra X = 46.98 ton En su componente en Y: 𝑦` sin 20 = 50 Y = 50 sin 20 Abre Y=17.1 ton 𝜋 180 180 𝜋 Descomponer el vector B: Componente de X X = 30sin 60 X = 25.98 ton Componente en Y Y = 30cos60 Y = 15 ton Convertir de grados a radianes. Convertir de radianes a grados Diagrama de fuerzas descompuestas en los ejes coordenados. Sumatoria de fuerzas en el eje X 𝛴FX = 0 𝛴FX = Ax + Bx – C 𝛴FX = 46.98 + 25.98 – 40 𝛴FX = 32.96 ton Sumatoria de fuerzas en el eje Y 𝛴FY = 0 𝛴FY = Ay – By 𝛴FY = 17.1 – 15 𝛴FY = 2.1 ton Resultante: Calcular magnitud de la resultante 𝐹𝑅 = √𝐹𝑥 2 + 𝐹𝑦 2 𝐹𝑅 = √32.96 2 + 2.12 FR = 33.02 ton Calcular el ángulo de la resultante con respecto al eje horizontal 𝐹𝑦 tan 𝑎 = 𝐹𝑥 2.1 𝑎 = tan−1 32.96 𝑎 = 3.6⁰ #include<stdio.h> #include<math.h> int main(){ float mag,ang,Px,Py,SPx,SPy,RP; int n,i; printf("\n\t Programa que descompone un vector en sus compoenentes "); printf("\n Numero de vectores a introducir = "); scanf("%d",&n); SPx=0; SPy=0; for(i=1;i<=n;i++){ printf("\n\n Introduzca la magnitud = "); scanf("%f",&mag); printf("\n Introduzca el angulo = "); scanf("%f",&ang); Px=mag*cos(ang*M_PI/180); Py=mag*sin(ang*M_PI/180); printf("\n Fx = %f",Px); printf("\n Fy = %f",Py); SPx=SPx+Px; SPy=SPy+Py; } printf("\n\n\n SFx = %f",SPx); printf("\n SFy = %f",SPy); RP=sqrt(SPx*SPx+pow(SPy,2)); printf("\n\n Resultante = %f",RP); } Serie de ejercicios: 1) Un programa que calcule el volumen de una figura geométrica. 2) Programa que solicite el ingreso de dos valores y compare cual es mayor. 3) Un programa que solicite el ingreso de dos valores e imprima de forma consecutiva de uno en uno desde el valor menos hasta el valor mayor. 4) Calcule la factorial de un número. 5) Realizar un programa que solicite un valor positivo y mayor a cero y este deba de calcular la sumatoria de forma consecutiva de uno en uno hasta el valor que el usuario indique. Y debe de comparar el valor adquirido si supera el valor de 100 decir que gano si no decir que perdió. Swhitch – case Crear menús por ejemplo para una calculadora switch(condición) { case 1: Instrucciones break; case 2: Instrucciones break; default: Anuncio de Error } #include<stdio.h> #include<math.h> int main(){ int opc; float x,y,res; printf("\n 1.Suma"); printf("\n 2.Division"); printf("\n 3.Seno \n "); scanf("%d",&opc); switch(opc){ case 1: printf("\n Introduzca el primer valor = "); scanf("%f",&x); printf("\n Introduzca el segundo valor = "); scanf("%f",&y); res=x+y; printf("\n Suma = %f",res); break; case 2: printf("\n Introduzca el primer valor = "); scanf("%f",&x); printf("\n Introduzca el segundo valor = "); scanf("%f",&y); if(y!=0){ res=x/y; printf("\n Division = %f",res); }else printf("\n No es posible la Division"); break; case 3: printf("\n Introduzca el angulo = "); scanf("%f",&x); res=sin(x*M_PI/180); printf("\n Seno = %f",res); break; default: printf("\n Opcion no vaida"); } } Estructura while La instrucción while se utiliza para generar bucles, en los cuales un grupo de instrucciones se ejecuta de forma repetida, hasta que se satisface alguna condición. While (expresión) { Instrucciones } Estructura Do-While La sintaxis de un ciclo do-while es un tanto más larga que la del ciclo while en C++, sin embargo no se hace más complicado, de hecho con tan solo tener bien clara una condición de finalización para el ciclo tendremos prácticamente todo terminado. do { Bloque de Instrucciones } while(condición de finalización); Prototipo de una Función La declaración de una función tiene dos componentes principales: la primera línea (incluye las declaraciones de los argumentos) y el cuerpo de la función. Tipo de dato nombre función (tipo 1 arg1, tipo2 arg2…………tipon argn){ Instrucciones } Ejemplo: Calcular el área de un polígono con más de cuatro lados. Ejercicio: Realizar un programa que resuelva ecuaciones de segundo grado, en donde identifique si las soluciones son reales o complejas. Si las soluciones son reales imprimir los resultados en números reales y si son reales también imprimir el resultado en números complejos. (Ocupar funciones). Tarea: Realizar un programa que sume números de forma consecutiva. Por ejemplo que sume del 1 al 10 lo cual daría 55. Utilizando funciones. Arreglos: Ejemplo Int variable[4] = {18,19,17,20,17}; variable[0]=18 variable[1]=19 variable[2] = 17 variable[3] = 20 variable[4] = 17 float x[ ]; char var[2][2]; Int x[2][2][2]: