Другие языки программирования и технологии

Помогите написать простенькие программки!

1)Составьте программу, вычисляющую
отношение факториала числа N к сумме
целых чисел от 1 до N. Целое число N
должно задаваться вводом с клавиатуры с
проверкой соответствия вводимого числа.
2)Составьте программу, которая по
заданным координатам треугольника (ввод с
клавиатуры 6-ти вещественных чисел)
рассчитывает его периметр и площадь
> пофиг на язык
Ну-ну.

1)
.386
.model flat, stdcall
option casemap:none

include windows.inc
include kernel32.inc
include msvcrt.inc
include masm32.inc
includelib kernel32.lib
includelib msvcrt.lib
includelib masm32.lib

.stack 100h

.data
ErrTxt db 'Ошибка! ',0
Prompt db 'Введите N (целое от 1 до 20): ',0
ResTxt db 'Отношение = %s',0
InpFrm db '%d',0
ExitFrm db '\n',0

.data?
N dd ?
Sum dd ?
Result dq ?
Buffer db 64 dup (?)

.code
Err:
    invoke crt_printf,addr ErrTxt
    invoke crt__flushall
N80843707:
    invoke crt_printf,addr Prompt
    invoke crt_scanf,addr InpFrm,addr N
    or eax,eax
    jz Err
    mov eax,N
    cmp eax,1
    jl Err
    cmp eax,20
    jg Err
    mov edx,eax
    inc edx
    mul edx
    shr eax,1
    mov Sum,eax
    finit
    fld1
    mov ecx,N
DoLoop:
    mov dword ptr Buffer,ecx
    fimul dword ptr Buffer
    loop DoLoop
    fidiv Sum
    fstp Result
    invoke FloatToStr,Result,addr Buffer
    invoke crt_printf,addr ResTxt,addr Buffer
    invoke crt__flushall
    invoke crt_scanf,addr ExitFrm
    invoke ExitProcess,0
    end N80843707

2)
class
  N80843707
create
  make
feature {NONE}
  make
    local
      x1, x2, x3, y1, y2, y3, S: DOUBLE
  do
    x1 := input("Введите X1: ")
    y1 := input("Введите Y1: ")
    x2 := input("Введите X2: ")
    y2 := input("Введите Y2: ")
    x3 := input("Введите X3: ")
    y3 := input("Введите Y3: ")
    S := (x1 - x3) * (y2 - y3) - (x2 - x3) * (y1 - y3)
    S := S.abs / 2
    io.put_string ("Площадь треугольника = ")
    io.put_double (S)
  end

feature {NONE}
  input(s: string): double
  do
    io.put_string (s)
    io.read_double
    Result := io.last_double
  end

end
ВМ
Владислав Мищенко
51 590
Лучший ответ
а язык не уточнил