Documentos de Académico
Documentos de Profesional
Documentos de Cultura
#include <stdio.h>
int main()
{
FILE *origen, *destino;
char letra;
origen=fopen("origen.txt","r");
destino=fopen("destino.txt","w");
if (origen==NULL || destino==NULL)
{
printf( "Problemas con los ficheros.\n" );
exit( 1 );
}
letra=getc(origen);
while (feof(origen)==0)
{
if (!strchr("AEIOUaeiou",letra))
putc( letra, destino );
letra=getc(origen);
}
if (fclose(origen)!=0)
printf( "Problemas al cerrar el fichero origen.txt\n" );
if (fclose(destino)!=0)
printf( "Problemas al cerrar el fichero destino.txt\n" );
Ejercicio 2 (Pascal)
Program menu;
var seleccion :char;
nombre, dir : string [30];
tel, ciudad : string[10];
begin
Writeln (‘N: Nombre del cliente’);
Writeln (‘D: Dirección’);
Writeln (‘T: Teléfono’);
Writeln (‘C: Ciudad’);
Writeln (‘F: Fin’);
Wrtiteln;
Writeln (‘Elige una opción’);
Readln(seleccion);
Case seleccion of
‘N’, ‘n’ :begin
Write (‘Su nombre es: ‘);
Readln(nombre)
end;
‘D’, ‘d’ :begin
Write (‘Su dirección es: ‘);
Readln(dir)
end;
‘T’, ‘t’ :begin
Write (‘Su teléfono es: ‘);
Readln(tel)
end;
‘C’, ‘c’ :begin
Write (‘Su ciudad es: ‘);
Readln(ciudad)
end;
‘F’, ‘f’ : {no hace nada}
else
wrtiteln(‘La elección no es válida’)
end
End.
Ejercicio 3 (Power Builder)
if SQLCA.sqlcode = -1 then
MessageBox('Error', 'Error consultando la zona-horario, ' + SQLCA.SQLErrText)
Rollback;
lb_salir = true
exit
elseif isnull(li_total) or li_total = 0 then // Si no existe, se debe insertar
INSERT INTO ZONA_HORARIO
VALUES (:li_clavezona, :li_horario, :ld_lu, :ld_mu, :ld_miu,
:ld_ju, :ld_vu, :ld_su, :ld_du, :li_lr, :li_mr, :li_mir, :li_jr, :li_vr, :li_sr, :li_dr);
if SQLCA.sqlcode = -1 then
if SQLCA.sqldbcode = -913 then // Error de deadlock
MessageBox('Mensaje', 'El archivo está bloqueado, espere y vuelva a intentarlo')
else
MessageBox('Error', 'Error registrando la zona-horario, ' + SQLCA.SQLErrText)
end if
Rollback;
lb_salir = true
exit
end if
else // Siexiste el registro, se actualiza
UPDATE ZONA_HORARIO SET LU_LUNES =:ld_lu, LU_MARTES = :ld_mu,
LU_MIERCOLES =:ld_miu, LU_JUEVES = :ld_ju, LU_VIERNES = :ld_vu,
LU_SABADO = :ld_su, LU_DOMINGO = :ld_du, LR_LUNES = :li_lr, LR_MARTES = :li_mr,
LR_MIERCOLES = :li_mir, LR_JUEVES = :li_jr, LR_VIERNES = :li_vr,
LR_SABADO = :li_sr, LR_DOMINGO = :li_dr
WHERE CLAVE_ZONA = :li_clavezona AND CLAVE_HORARIO = :li_horario;
if SQLCA.sqlcode = -1 then
if SQLCA.sqldbcode = -913 then // Error de deadlock
MessageBox('Mensaje', 'El archivo para bloqueado')
else
MessageBox('Error', 'Error actualizando la zona-horario, ' + SQLCA.SQLErrText)
end if
Rollback;
lb_salir = true
exit
end if
end if
next
if not lb_salir then
Commit;
wf_clear()
end if
END CHOOSE
end if
Ejercicio 4 (Visual Basic)
Sub GenerarEtiq()
Set rs2 = db.OpenRecordset("Definiciones", dbOpenDynaset, False, dbOptimistic)
serie = rs2!serie
SerieAnterior = rs2!serie
rs2.Close
QRY = "SELECT MODULO.IdModulo, Modulo.variedad,Modulo.xn," & _
" variedad.codigo,MODULO.Cosechar, VARIEDAD.Nombre,modulo.impreso" & _
" From Variedad RIGHT JOIN Modulo On Variedad.variedad = " & _
" Modulo.variedad WHERE (MODULO.cosechar >0 AND Impreso=0 ) " &
" ORDER BY idModulo,modulo.variedad"
Set rs = db.OpenRecordset(QRY, dbOpenDynaset, False, dbOptimistic)
If rs.RecordCount = 0 Then
QRY = "Update Definiciones set serie=" & serie
Imprimir = 0
Exit Sub
End If
Imprimir = 1
Set rs1 = db.OpenRecordset("etiquetas", dbOpenDynaset, dbAppendOnly, dbOptimistic)
Set rs2 = db.OpenRecordset("RegistroB", dbOpenDynaset, dbAppendOnly, dbOptimistic)
rs.MoveLast
rs.MoveFirst
Do While Not .EOF
frmCosecha.StatusBar1.Panels(1).Text = "Generando Etiquetas del Modulo " & !idmodulo
rs.Edit
NoEtiq = rs!COSECHAR / 105
For i = 1 To NoEtiq
serie = serie + 1
rs1.AddNew
rs2.AddNew
rs1!serie = serie
rs1!nombre = !nombre
rs1!codigo = !codigo
rs1!modulo = !idmodulo
rs1!semana = SemanaActual
rs1!variedad = !variedad
rs2!serie = serie
rs2!variedad = !variedad
If rs!xn < 1 Then
rs1!xn = 1
Else
rs1!xn = Round(rs!xn)
End If
rs1.Update
rs2.Update
Next
rs!impreso = 1
rs.Update
rs.MoveNext
Loop
rs1.Close
rs.Close
QRY = "Update Definiciones set serie=" & serie
db.Execute QRY
End Sub
Ejercicio 5 (Pascal)
Program calculo;
Var Arg1 :real;
Arg2 :integer;
Resp : char;
begin
repeat
Writeln(‘Introduzca un número real y un entero no negativo’);
Readln(Arg1, Arg2);
Writeln(Arg1 :4 :2, ‘ elevado a ‘, Arg2 :1);
Writeln(‘es ‘, Potencia(Arg1, Arg2):5:2);
Writeln(¿Otra prueba? (S/N)’);
Readln(Resp)
until (Resp = ‘N’) or (Resp = ‘n’)
end.