Visual basic actualizado y c -2-1212616707734961-8
-
Upload
alejandro-caro -
Category
Education
-
view
138 -
download
1
Transcript of Visual basic actualizado y c -2-1212616707734961-8
3. Sentencias de control
If … Then … ElseSelect CaseFor … Next Do … LoopWhile & WendFor Each & NextDo While … Loop
Las sentencias de control, denominadas también estructuras de control, permiten tomar decisiones y realizar un proceso repetidas veces. Se trata de unas estructuras muy importantes ya que son las encargadas de controlar el flujo de un programa según los requerimientos del mismo.Visual Basic 6.0 dispone de las siguientes estructuras de control:
if … elseswitchfor … do …whiledo while
En C, C++ y C#
Estructuras condicionales o de selección
If … Then … ElseSelect Case
Son aquellas que evalúan una variable, y dependiendo de las propiedades determinadas en su evaluación, se realiza una acción determinada.
Estructuras condicionales o de selección
Estructuras condicionales en Visual Basic
if … elseswitch
En C, C++ y C#
Sentencia IF .. THEN … ELSE
Esta estructura permite ejecutar condicionalmente una o más sentencias y puede escribirse de dos formas.
La primera ocupa sólo una línea y tiene la forma siguiente: If condición Then sentencia1 [Else sentencia2]
La segunda es más general y se muestra a continuación: If condicion Thensentencia(s) [Elsesentencia(s)]End If
Sentencia if… else …
En C, C++ y C#:
La primera: if (condición) sentencia1 [else sentencia2];
La segunda: if (/*condición*/) {//sentencia(s); }[else{//sentencia(s);]}
Notas:1)La condición siempre va entre paréntesis2)Cada else busca el if más cercano3)Si se ejecutan dos o más sentencias en una estructura if, estas deben ir encerradas entre llaves
Para indicar que se quiere ejecutar uno de varios bloques de sentencias dependientes cada uno de ellos de una condición, la estructura adecuada es la siguiente:
If condicion1 Thensentencias1ElseIf condicion2 Thensentencias2 End Ifsentencia-nEnd If
En C, C++, C#:
NotasEn C, C++ y C# no existe el then ni código semejante
if (/*condicion1*/) {//sentencias1;}else if (/*condicion2*/) {//sentencias2; }else{//sentencia-n;}
Por ejemplo, se desea escribir un programa que permita definir si un número a es menor que un número b,
Solución 1: If a<b Then Print a & " es menor que " & bIf a=b Then Print a & " es igual que " & bIf a>b Then Print a & " es mayor que " & b
Solución 2: If a<b Then Print a & " es menor que " & b ElseIf a=b Then Print a & " igual que " & b Else Print a & " es mayor que " & b End If
Solución 1: if (a<b) printf("%d es menor que %d", a, b); if (a==b) printf("%d es igual que %d", a, b); if (a>b) printf("%d es mayor que %d", a, b);
Solución 2: if (a<b){
printf("%d es menor que %d", a, b);}else if (a==b) {
printf("%d es igual que %d", a, b);}else{
printf("%d es mayor que %d", a, b);}
En C:
Ejemplo. Escribir un programa que de como resultado el menor de tres números a, b, c. Utilizar la sentencia de control If…Then…ElseIf…End If
Dim a, b, c, menor As Integer 'Declaración de variables'Ingreso de datosa = InputBox("a= "): b = InputBox("b="): c = InputBox("c=")'Ordenamiento de datosIf a < b Then If a < c Then menor = a Else menor = c End IfElse If b < c Then menor = b Else menor = c End IfEnd IfVentana.Print "Menor = " & menor
int main(){int a, b, c, menor; //Declaración de variables//Ingreso de datosprintf("a= "); printf("b= "); printf("c= ");scanf("%d%d%d", &a, &b, &c);//Ordenamiento de datosif (a < b){ if (a < c) { menor = a; }else{ menor = c; }}else{ if (b < c){ menor = b; }else{ menor = c; }}printf("Menor = %d",menor);return 0;}
En C:
Sentencia SELECT CASE
Esta sentencia permite ejecutar una de entre varias acciones en función del valor de una expresión. Es una alternativa a If … Then ElseIf If cuando se compara la misma expresión con diferentes valores.
Select Case expresionCase etiq1[ sentencias1] Case etiq2 [ sentencias2] Case Else[ sentenciasn ] End Select
donde expresión es una expresión numérica o alfanumérica, y etiq1, etiq2, ... pueden
adoptar las formas siguientes:1. expresion 2. expresion To expresion 3. Is operador-de-relación expresión 4. combinación de las anteriores separadas por comas
Sentencia switch en C y C++
alternativa a if ...{}else{}if
switch (/*expresión*/){ case etiq1:[/* sentencias1*/];break;case etiq2:[/* sentencias2*/];break; defraut:[/* sentenciasn*/]; }
donde expresión es una expresión numérica o alfanumérica, y etiq1, etiq2, ... pueden adoptar las formas siguientes:
1. expresión 2. etiq distintas que tiene el mismo resultado una debajo de la otra o al costado de la otra
Por ejemplo,
Numero = 8 ' Se inicializa la variable Numero' Se va a evaluar la variable Numero. Select Case Numero' Si Numero está entre 1 y 5.Case 1 To 5Resultado = "Se encuentra entre 1 y 5" ' Numero es uno de los tres valores. Case 6, 7, 8Resultado = "Se encuentra entre 6 y 8"' Numero es 9 ó 10. Case Is = 9 , Is = 10 Resultado = "El valor es 9 o 10" 'Si Numero toma otro valor Case Else Resultado = "El número no se encuentra entre 1 y 10" End Select Print Resultado
En C y C++,
char * resultado;int numero = 8; //Se inicializa la variable número// Se va a evaluar la variable número. switch (numero){// Si número está entre 1 y 5.case 1 … 5:resultado = ("Se encuentra entre 1 y 5");break; // número es uno de los tres valores. case 6: case 7: case 8:resultado = ("Se encuentra entre 6 y 8");break;// número es 9 ó 10.case 9: case 10: resultado = ("El valor es 9 o 10");break;//Si número toma otro valor default:resultado = ("El n£mero no se encuentra entre 1 y 10"); }printf("%s", resultado);}
SugerenciaLa expresión caso variable, número … variable2, expresión 2 separada por tres puntos, indicando rango un rango de valores, (case 1 … 5:) es la forma abreviada decase 1: case 2: case 3: case 4: case 5:
Nota:case 1:case 2:
Es lo mismo que case 1: case 2: es lo mismo case 2: Nota 2: En un switch las llaves deben incluirse
En C #
En C# se requiere que también se corte la sentencia por defecto
switch (/*expresión*/){ case etiq1:[/* sentencias1*/];break;case etiq2:[/* sentencias2*/];break; defraut:[/* sentenciasn*/];break; } Se requiere este break aquí
Ejemplo. Escribir un programa que de como resultado el menor de tres
números a, b, c. Utilizar la sentencia de control Select Case Private Sub Command1_Click()Dim a, b, c, menor As Integer 'Declaración de variablesDim VarSel As Boolean'Ingreso de datosa = InputBox("a = "): b = InputBox("b = "): c = InputBox("c = "):'Ordenamiento de datosVarSel = TrueSelect Case VarSel Case (a < b) And (a < c) menor = a Case (b < a) And (b < c) menor = b Case Else menor = cEnd SelectVentana.Print "Menor = " & menorEnd Sub
En C . Usando switch
#include <stdio.h>#include <stdlib.h>#include <stdbool.h> //<- incluir esta librería para reconocer variables booleanas
int main(){int a, b, c, menor; //Declaración de variablesbool varsel;//Ingreso de datosprintf("a= "); printf("b= "); printf("c= ");scanf("%d%d%d", &a, &b, &c);//Ordenamiento de datosvarsel = true;switch (varsel){case a < b:case a < c: menor = a;break;case b < a:case b < c: menor = b; default: menor = c;}printf("Menor = %d", menor);return 0;}
Ejercicio: Escribir un programa que calcule las raíces de la ecuación:
a·x2 + b·x + c = 0
Teniendo en cuenta los siguientes casos:
1. Si a=0 y b=0, imprimiremos un mensaje diciendo la ecuación es degenerada.
2. Si a=0 y b≠0, existe una raíz única con valor –c / b.
3. En los demás casos utilizaremos la fórmula siguiente:
La expresión d=b2-4ac se denomina discriminante.
- Si d≥0 entonces hay dos raíces reales
- Si d<0 entonces hay dos raíces complejas de la forma
x + yj, x - yj
Indicar con literales adecuados los datos a introducir, así como los resultados
obtenidos.
a2
c·a·4bbx
2
i
Solución.a. Utilizando la sentencia If … Then … Else …
Dim a, b, c, r1, r2, real, compleja, d As Double 'Declaración de variablesa = InputBox("a = "): b = InputBox("b = "): c = InputBox("c =")Ventana.Print "Ecuación: " & a & "x^2 + " & b & "x +" & cIf (a = 0) Or (b = 0) Then 'Ecuación degenerada Ventana.Print "La ecuación es degenerada" ElseIf (a = 0) And (b <> 0) Then 'Dos raíces reales iguales r1 = -c / b 'r2 = r1 Ventana.Print "r1 = r2 = " & r1 Else d = b ^ 2 - 4 * a * c 'Cálculo del discriminante If d >= 0 Then 'Dos raíces reales diferentes r1 = (-b + (d ^ (1 / 2))) / (2 * a) r2 = (-b - (d ^ (1 / 2))) / (2 * a) Ventana.Print "r1 =" & r1 Ventana.Print "r2 =" & r2 Else 'Dos raíces reales conjugadas real = -b / (2 * a) compleja = ((-b ^ 2 + 4 * a * c) ^ (1 / 2)) / (2 * a) Ventana.Print "r1 = " & real & " + " & compleja & ".i " Ventana.Print "r2 = " & real & " - " & compleja & ".i " End IfEnd If
El C:#include <stdio.h>#include <stdlib.h>#include <math.h>
int main(){double a, b, c, r1, r2, real, compleja, d; //Declación de variablesprintf("a = "); printf("b = "); printf("c =");scanf("%lf%lf%lf", &a, &b, &c);printf("Ecuaci¢n: %gx^2 + %gx + %g\n",a,b,c);if (a == 0 || b == 0) { //Ecuación degenerada printf("La ecuaci¢n es degenerada");
}else{if (a == 0 && b != 0) { //Dos raíces reales iguales r1 = -c / b; //r2 = r1 printf("r1 = r2 = %g", r1); }else{ d = pow(b,2) - 4 * a * c; //Cálculo del discriminante
if (d >= 0) { //Dos raíces reales diferentes r1 = (-b + (sqrt(d))) / (2 * a); r2 = (-b - (sqrt(d))) / (2 * a); printf("r1 = %g\n", r1); printf("r2 = %g", r2); }else{
//Dos raíces reales conjugadas real = -b / (2 * a); compleja = (sqrt(pow(-b,2) + 4 * a * c),(1 / 2)) / (2 * a); printf("r1 = %g + %g.i\n", real, compleja); printf("r2 = %g - %g.i", real, compleja); } }}return 0;}
b. Utilizando la sentencia Select Case
Dim a, b, c, r1, r2, real, compleja, d As Double 'Declaración de variablesDim VarSeleccion As Booleana = InputBox("a = "): b = InputBox("b = "): c = InputBox("c = ")Ventana.Print "Ecuación: " & a & "x^2 + " & b & "x +" & cVarSeleccion = TrueSelect Case VarSeleccion Case (a = 0) And (b = 0) 'Ecuación degenerada Ventana.Print "La ecuación es degenerada" Case (a = 0) And (b <> 0) r1 = -c / b 'r2 = r1 Ventana.Print "r1 = r2 = " & r1 Case Else d = b ^ 2 - 4 * a * c 'Cálculo del discriminante Select Case VarSeleccion Case d >= 0 r1 = (-b + (d ^ (1 / 2))) / (2 * a) r2 = (-b - (d ^ (1 / 2))) / (2 * a) Ventana.Print "r1 =" & r1 Ventana.Print "r2 =" & r2 Case Else real = -b / (2 * a) compleja = ((-b^ 2 + 4 * a * c) ^ (1 / 2)) / (2 * a) Ventana.Print "r1 = " & real & " + " & compleja & ".i " Ventana.Print "r1 = " & real & " - " & compleja & ".i " End SelectEnd Select
#include <stdio.h>#include <stdlib.h>#include <math.h>#include <stdbool.h>
int main(){double a, b, c, r1, r2, real, compleja, d; //Declaración de variablesbool varseleccion;printf("a = "); printf("b = "); printf("c = ");scanf("%lf%lf%lf", &a, &b, &c);printf("Ecuaci¢n: %gx^2 + %gx + %g\n",a,b,c);switch(varseleccion){ case '1': case '2': b = 0; //Ecuación degenerada printf("La ecuaci¢n es degenerada"); break; case '3': a = 0; case '4': b != 0; r1 = -c / b; //r2 = r1; printf("r1 = r2 = %g", r1); break; default: d = (pow(b,2) - 4 * a * c); //Cálculo del discriminante switch (varseleccion){ case '5': (d >= 0); r1 = (-b + (pow(d,(1 / 2)))) / (2 * a); r2 = (-b - (pow(d,(1 / 2)))) / (2 * a); printf("r1 = %g\n", r1); printf("r2 = %g\n", r2); default: real = -b / (2 * a); compleja = sqrt(pow(-b,2) + 4 * a * c) / (2 * a); printf("r1 = %g + %g.i \n", real,compleja); printf("r1 = %g - %g.i \n", real,compleja); }}return 0;}
Estructuras iteractivas o repetitivas
Son aquellas que realizan una acción repetidamente, mientras la variable cumpla con determinada propiedad.
Estructuras iteractivas o repetitivas
For … NextDo … LoopWhile & WendFor Each & NextDo While … Loop
Estructuras repetitivas en Visual Basic
En C, C++ y C#
for…do…while…do…while
SentenciaFOR… NEXT
La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto número de veces. Su forma general es:
For variable = expresion1 To expresion2 [sentencias] [Step expresion3]Exit Forsentencias] Next[variable]
Sentencia for…
En C, C++ y C#
for (/*variable*/ = /*expresion1*/; /*variable*/ <= /* expresion2 */; /*incremento*/){//[sentencias]; break;//[sentencias]; }
Sentencia for con paso negativo…
for (/*variable*/ = /*expresion1*/; /*variable*/ >= /* expresion2 */; /*decremento*/){//[sentencias]; break;//[sentencias]; }
La sentencia Exit For es opcional y permite salir de un bucle For… Next antes de que éste finalice. Por ejemplo,
MyString = "Ing. Química" For Words = 3 To 1 Step -1For Chars = Words To Words+4MyString = MyString & CharsNext CharsMyString = MyString & " "Next Words
En C y C++
mystring = "Ing. Química"; for(words = 3; words <= 1; words--){for(chars = words; chars <= word+4; chars++){mystring = myString && chars;}mystring = mystring && '\0';}
En C/c++ la sentencia Exit For es break
Ejercicio. Realizar un programa que permita imprimir los números del 1 al 50. Utilizar la sentencia For … Next
Ejercicio. Realizar un programa que permita imprimir los números impares
del 1 al 50. Utilizar la sentencia For … Next
Dim i As Integer 'ContadorFor i = 1 To 50 Ventana.Print iNext i
Dim i As Integer 'ContadorFor i = 1 To 50 Step 2 Ventana.Print iNext i
En C
Números impares del 1 al 50.
int i; //Contadorfor (i = 1; i <= 50; i++){printf("%d ",i);}
int i; //Contadorfor (i = 1; i <= 50; i+=2){printf("%d ",i);}
En CNúmeros del 1 al 50.
Sentencia DO … LOOP
Un Loop (bucle) repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta, o hasta que una condición dada sea cierta. La condición puede ser verificada antes o después de ejecutarse el conjunto de sentencias. Sus posibles formas son las siguientes:
' Formato 1: Do [{While/Until} condición] [ sentencias] [Exit Do] [ sentencias] Loop
Sentencia do
En C, C++ y C#
//Formato 2: do{//[ sentencias]; [break]; //[ sentencias];}while [(/*{!}condicion*/)];
Nota:Algunos IDES piden las llaves.
' Formato 2: Do[ sentencias] [Exit Do] [ sentencias] Loop [{While/Until} condicion]
La sentencia opcional Exit Do permite salir de una bucle Do… Loop antes de que finalice éste.
// Formato 2: do{//[ sentencias]; [break]; //[ sentencias] ;}while [({!}condicion)];
La sentencia opcional break permite salir de una bucle do…while antes de que finalice éste.
Por ejemplo,
Check = TrueCounts = 0DoDo While Counts < 20Counts = Counts + 1
If Counts = 10 Then Check = FalseExit Do
End IfLoopLoop Until Check = False
En C y C++, Exit Sub es break;
#include <stdio.h>#include <stdlib.h>#include <stdbool.h> //<incorporar esta librería
int main() { int check = true;int counts = 0;do{do{counts = counts + 1;if (counts == 10){check = false;break;}} while (counts <= 20);} while (check != false);printf("%d", counts);return 0;}
Ejercicio. Realizar un programa que permita imprimir los números del 1 al 50. Utilizar la sentencia Do…Loop
Ejercicio. Realizar un programa que permita imprimir los números impares
del 1 al 50. Utilizar la sentencia Do…Loop
Dim i As Integer 'Contadori = 1DoVentana.Print iIf i = 50 Then Exit Doi = i + 1Loop
Dim i As Integer 'Contadori = 1DoIf i = 50 Then Exit DoVentana.Print ii = i + 1Loop
En C imprimir los números del 1 al 50, usando do…
En C imprimir los números impares del 1 al 50., usando
do…
int i; //Contadori = 1;do{printf("%d ", i);i = i + 1;}while (i <= 50);
int i; //Contadori = 1;do{printf("%d ", i);i = i + 2;}while (i <= 50);
Sentencia WHILE & WEND
Esta sentencia es otra forma de generar bucles que se recorren mientras se cumpla la condición inicial. Su estructura es la siguiente:
While condicion [ sentencias] WendPor ejemplo, Counts = 0
' Se inicializa la variable. While Counts < 20 ' Se comprueba el valor de Counts. Counts = Counts + 1 ' Se incrementa el valor de CountsWend ' Se acaba el bucle cuando Counts > 19
En C, C++ y C#
while (/*condicion*/){ //[ sentencias] }
counts = 0 ;
// Se inicializa la variable. while (counts < 20){ // Se comprueba el valor de counts.counts = counts + 1; // Se incrementa el valor de counts. Forma alternativa count++} // Se acaba el bucle cuando counts > 19
Ejercicio. Realizar un programa que permita imprimir los números del 1 al 50. Utilizar la sentencia While…Wend
Ejercicio. Realizar un programa que permita imprimir los números impares del 1 al 50. Utilizar la sentencia While…Wend
Dim i As Integer 'Contadori = 1While i <= 50 Ventana.Print ii = i + 1Wend
Dim i As Integer 'Contadori = 1While i <= 50 Ventana.Print ii = i + 1Wend
int i; //Contadori = 1;while (i <= 50) {printf("%d", i);i = i + 2;}
Ejercicio. Realizar un programa que permita imprimir los números impares del 1 al 50. Utilizar la sentencia while…
Ejercicio. Realizar un programa que permita imprimir los números del 1 al 50. Utilizar la sentencia while…
int i; //Contadori = 1;while (i <= 50) {printf("%d", i);i = i + 1;}
Sentencia FOR EACH … NEXT
Esta construcción es similar al bucle For, con la diferencia de que la variable que controla la repetición del bucle no toma valores entre un mínimo y un máximo, sino a partir de los Elementos de un array (o de una colección de objetos). La forma general es la siguiente:
For Each variable In grupo[ sentencias]Next variable
Ejercicios adicionales:
3.1 Escribir un programa que de como resultado la suma de los 100 primeros números naturales
3.2 Realizar un programa que de cómo resultado la suma de los números pares comprendidos entre dos números a y b.
3.3 Realizar un programa que imprima si un número dado por el teclado es par o impar, positivo o negativo, entero decimal.
3.4 Realizar un programa que de como resultado una tabla donde se especifique el cuadrado y el cubo de los n primeros números. NÚMERO CUADRADO CUBO
3.5 Realizar un programa que liste la tabla de sumar entre 0 y 9 de
cualquier número introducido por el teclado.
3.6 Realizar un programa que liste las tablas de multiplicar de todos los
números comprendidos entre otros dos a y b, introducidos por el
teclado.
3.7 Realizar un programa que dé como resultado la suma y la media de un conjunto de números introducidos por el teclado. La entrada de datos finalizará, por ejemplo al teclear el número 99999.
3.8 Realizar un programa que de cómo resultado el mayor y el menor de un
conjunto de números introducidos por el teclado. La entrada de datos
finalizará por ejemplo, con el número 99999.
3.9 Realizar un programa que dibuje un triángulo de n filas , empleando el carácter asterisco. Realice el programa utilizando: a.Sentencias Forb.Sentencias While
Por ejemplo, para n=4
******* *********
3.10. Implementar un programa que permita evaluar el factorial de un
número entero positivo. Por ejemplo
Si n = 5: S = 5*4*3*2*1
Si n = 3: S = 3*2*1
3.11. Implementar programas que permitan evaluar la suma total de los n primeros términos de las siguientes series:
a. La suma de los n primeros términos de la serie
S = 1 + 3 + 5 + 7 + ...
b. La suma de los n primeros términos de la serie
c. S = 1-2+3-5+8-13+21-34+…..
n
1......
4
1
3
1
2
1
1
1S
d. Evaluar los n primeros térmicos de la serie:
......7 !
1
5 !
1
3 !
1
1 !
1S
3.12 Implementar un programa que permita ingresar n números y ordenarlos de acuerdo a las opciones: de mayor a menor, o de menor a mayor. 3.13 Implementar un programa que permita determinar si un número entero ingresado es primo.
3.14 Utilizando la sentencia For … Next , escribir un programa que imprima un tablerode ajedrez en el que las casillas blancas se simbolizarán con una B y las negras con unaN. Así mismo el programa deberá marcar con * las casillas a las que se puede moverun alfil desde una posición dada. La solución será similar a la siguiente:
Posición del alfil:Fila 3Columna 4
B * B N B * B NN B * B * B N BB N B * B N B NN B * B * B N BB * B N B * B N* B N B N B * BB N B N B N B *N B N B N B N B
Ejercicios adicionales:
3.1 Dim c, suma As Integer c = 1 suma = 0 While c <= 100 suma = suma + c c = c + 1 Wend Ventana.Print "La suma de los 100 primeros números es: " & sumaEnd Sub
3.1 en Cint c, suma; c = 1; suma = 0; while (c <= 100) { suma = suma + c; c = c + 1; } printf("La suma de los 100 primeros n£meros es: %d", suma);return 0; }
3.2 Dim a, b, i, suma As Integera = Val(InputBox("a = ")): b = val(InputBox("b = "))For i = a To b If i Mod 2 = 0 Then suma = suma + iNext iVentana.Print suma
3.2 en Cint a, b, i, suma ;suma = 0;printf("a = ");scanf("%d", &a);printf("b = ");scanf("%d", &b);for (i = a; i <= b; i++){ if (i % 2 == 0) suma = suma + 1;}printf ("%d", suma);
3.3 Private Sub Command1_Click()'declaramos la variable del tipo integer o enteroDim a As Double'Variable para el informe al usuarioDim mensaje As String'Para obtener la parte entera y decimales.Dim entero As IntegerDim decimales As Double'cargamos a la variable lo que ingrese por teclado el operadora = Val(InputBox("Ingrese cualquier número, aún con decimales!", "Evaluador de Números"))'si la variable esta vacía lo informa y sale del subIf a = Empty Then MsgBox "¡No ha ingresado ninguna información!", vbCritical, "Evaluador de números Enteros"Exit SubEnd If'¿Saber si es par?. utilizamos mod que divide dos as y devuelve el resto.'es decir si cualquier a dividido por 2, da como resto cero, es par.
If a Mod 2 = 0 Then'informamos que el a es par Ventana.Print a & " es par."Else'informamos que el número ingresado es impar Ventana.Print a & " es impar."End If'saber si es negativo o positivoIf a < 0 Then'informamos que el número es par Ventana.Print mensaje & a & " es Negativo."Else'informamos que el número ingresado es impar Ventana.Print mensaje & a & " es Positivo."End Ifentero = CInt(a)decimales = a - (CInt(a))Ventana.Print mensaje & entero & " es la parte entera." & vbCrLfVentana.Print mensaje & decimales & " es la parte decimal." & vbCrLfEnd Sub
3.3 En C#include <math.h> int main(){//declaramos la variable del tipo integer o enterodouble a;//Para obtener la parte entera y decimales.int entero;double decimales;//cargamos a la variable lo que ingrese por teclado el operadorprintf("Ingrese cualquier n£mero, a£n con decimales!: ");scanf("%lf", &a);//¿Saber si es par?. Utilizamos % que divide dos números y devuelve el resto.//es decir si cualquier a dividido por 2, da como resto cero, es par.if ((int)a % 2 == 0){//informamos que el a es par printf ("%g es par.\n", a); //%g no devuelve .000000 cuando el número que se ingresa es entero}else{//informamos que el número ingresado es impar printf ("%g es impar.\n", a);}
//saber si es negativo o positivoif (a < 0){//informamos que el número es par printf ("%g es Negativo.\n", a);}else{//informamos que el número ingresado es impar printf ("%g es Positivo.\n", a);}entero = floor(a); //floor es redondeo hacia el menordecimales = a - (floor(a));printf ("%d es la parte entera.\n" , entero);printf("%g es la parte decimal.\n", decimales);return 0;}
3.4 Dim a, i As Integeri = Val(InputBox("Ingrese cualquier número"))'si la variable esta vacía lo informa y sale del subIf i = Empty Then MsgBox "¡No ha ingresado ninguna información!", vbCritical, "Evaluador de números Enteros"Exit SubEnd IfVentana.Print "NÚMERO CUADRADO CUBO"For a = 0 To i Ventana.Print a & " " & a ^ 2 & " " & a ^ 3Next
3.4 En C #include <math.h>
int main(){ int a, i; printf("Ingrese cualquier n£mero: "); scanf("%d", &i); printf("NUMERO CUADRADO CUBO\n"); for (a = 0; a <= i; a++){ printf("%d\t%.f\t%.f\t\n", a, pow(a,2), pow(a,3)); } return 0;}
3.5 Dim a, z As Integerz = Val(InputBox("Ingrese z")) For a = 0 To 9 Step 1 Ventana.Print a & " + " & z &" = "& a + z Next aEnd Sub
3.5 En Cint a, z;printf("Ingrese z: ");scanf("%d", &z); for (a = 0; a <= 9; a++){ printf("%d + %d = %d\n", a, z, a + z); }return 0;}
3.6 Dim a, z, x, y As Integer z = Val(InputBox("Ingrese un multiplicador")) x = Val(InputBox("Ingrese una base para multiplicar")) y = Val(InputBox("Ingrese un tope para multiplicar")) For a = x To y Step 1 Ventana.Print a & " * " & z & " = " & a * z Next a
3.6 En Cint a, z, x, y;printf("Ingrese un multiplicador: ");scanf("%d", &z);printf("Ingrese una base para multiplicar: ");scanf("%d", &x);printf("Ingrese un tope para multiplicar: ");scanf("%d", &y);for (a = x; a <= y; a++){ printf("%d * %d = %d\n", a, z, a * z); }return 0;}
3.9 con For Dim n, i, j As Integer Dim caracter As String n = inputBox("Ingrese un valor entero") caracter = inputBox("Ingrese um carácter") For i = n To 0 Step -1 For j = 1 To i Step 1 Print caracter ; Next Print "" NextEnd Sub
3.9 en C con forint n, i, j;char caracter ;printf("Ingrese un valor entero");scanf("%d", &n);printf("Ingrese un caracter");scanf("%c", &caracter);
fflush(stdin); //limpia la basura del teclado
for (i = n; i > 0; i--) {for (j = 1; j < i; j++)printf("%c", caracter );printf("\n");}getch();return 0;}
3.9 con WhileDim i, j, n As IntegerDim carácter As Stringi = 0
n = InputBox("Ingrese un valor entero: ") carácter = InputBox("Ingrese un caracter: ") While i < n j = i While j < n Print carácter; j = j + 1 Wend Print "" i = i + 1 WendEnd Sub
3.9 en C con whileint i,j,n;char caracter;i=0;
printf("Ingrese un valor entero: ");scanf("%d", &n);
fflush(stdin);
printf("Ingrese un caracter: "); scanf("%c", &caracter); while(i<n){ j=i; while(j<n){ printf("%c", caracter); j++; } printf("\n"); i++; } getch(); return 0;}
3.10 ' declaración de variables Dim i, n As Integer Dim factorial As Integer factorial = 1 i = 1 ' Entrada, Pre-condición: n numero entero positivo n = Val(InputBox("Introduzca un número entero positivo")) While i <= n factorial = factorial * i i = i + 1 Wend ' salida, Post-condición: imprimir el factorial de n Ventana.Print "Factorial de " & n & " es " & factorialEnd Sub
3.10 en C /* declaración de variables */ int i, n; int factorial; factorial = 1; i = 1; /* Entrada, Pre-condición: n numero entero positivo */ printf("Introduzca un numero entero positivo"); scanf("%d", &n); //proceso: cálculo del factorial , n! = n.(n-1).(n-2)…(n-(n-1)) while (i < n) { factorial = factorial * i; i = i + 1; } /* salida, Post-condición: imprimir el factorial de n */ printf("Factorial de %d es %d ", n, factorial); return 0;}
3.11 a Dim suma, i, s As Integer s = Val(InputBox("Ingrese tope")) For i = 0 To s Step 1 If i Mod 2 <> 0 Then suma = suma + i End If Next Ventana.Print "La suma de los impares es ", sumaEnd Sub
3.11 a en C int suma, i, s; printf("Ingrese tope"); scanf("%d", &s); for (i = 0; i >= s; i--){ if (i % 2 != 0){ suma = suma + i; } } printf ("La suma de los impares es %d", suma); return 0;}
3.13 Dim s As String Dim n As Integer, d As Integer pctRes.Cls s = InputBox("Introduce un número natural positivo") n = CInt(s) 'CInt, redondeo hacia el mayor d = 2 While n Mod d <> 0 d = d + 1 Wend If n = d Then Ventana.Print "El número " & n & " es primo" Else Ventana.Print "El número " & n & " no es primo" End IfEnd Sub
3.13 en C#include <math.h>#include <conio.h>
int main(){ char s = 0; int n, d; printf("Introduce un n£mero natural positivo "); n = ceil(s); scanf("%d", &n); d = 2; while (n % d != 0){ d++; } if (n == d) printf("El n£mero %d es primo", n); else printf("El n£mero %d no es primo", n); getch(); return 0;}
Para información más detallada, revisar el capítulo 5 del texto: Cevallos Javier. Curso de Programación de Visual Basic 6. Alfaomega. 2000