tính tổng 10 số tự nhiên đầu tiên bằng lệnh repeat until trong phần mềm pascal
các bạn giúp mình với
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
tính tổng 10 số tự nhiên đầu tiên bằng lệnh repeat until trong phần mềm pascal
các bạn giúp mình với
Lời giải :
program hotrotinhoc;
var n,i: integer;
function sohoanhao(x: integer): boolean;
var tam,j: integer;
begin
sohoanhao:=false;
for j:=1 to x div 2 do
if x mod j=0 then tam:=tam+j;
if tam=x then sohoanhao:=true;
end;
begin
write('n='); readln(n);
for i:=1 to n do
if sohoanhao(i) then write(i,' ');
readln
end.
Cách làm (Tham khảo):
Lời giải :
program hotrotinhoc;
var a,b: integer;
function bcnn(x,y: integer): boolean;
var s,t: integer;
begin
while y<>0 do
begin
s:=x mod y;
x:=y;
y:=z;
end;
t:=(x*y) div x;
bcnn:=t;
end;
begin
write('a='); readln(a);
write('b='); readln(b);
write(bcnn(a,b));
readln
end.
1: while pos(#32,s)>0 do delete(s,pos(#32,s),1);
Còn kiểm tra palindom thì đầu tiên cho kiểm tra là true, chạy for từ đầu đến length div 2, nếu s[i] khác s[length-i+1] thì kiểm tra false, còn lại tự biết.
2: Các trường hợp sai
-Không có chấm hoặc nhiều hơn 1 chấm.
-1 trong 2 bên dấu chấm không phải là số hoặc 1 trong 2 bên không có số.
-dấu + hoặc - đặt sai vị trí (ko đặt đầu xâu, bên phải chữ e, giữa số mũ).
-Xuất hiện 1 kí tự khác e, +, -, số, khoảng cách.
-Xuất hiện khoảng cách giữa xâu
(Mình nghĩ vậy)
3. S:=lowercase(s); đưa s về xâu thường.
Chèn khoảng cách (#32) vô đầu xâu cho dễ xử lí: gọi s là xâu nhập vào, i là biến chạy, nếu s[i+1] không phải khoảng cách và s[i] là khoảng cách thì tăng đếm và upcase s[i+1] lên, đếm là số in ra
Cuối cùng là xóa khoảng cách thừa bằng:
While pos(#32#32,s)>0 do deletes(s,pos(#32#33,s),1);
If s[1]=#32 then delete(s,1,1);
If s[length(s)]=#32 then delete(s,length(s),1);
(#32 là dấu khoảng cách theo bảng mã ascii)
VD chính xác :
m1.inp | m1.out |
5 -2 3 5 4 -7 |
-2 3 5 4 -7 -7 -2 3 4 5 |
Lời giải :
program hotrotinhoc;
const fi='m1.inp';
fo='m1.out';
var f: text;
i,n,tg : integer;
a: array[1..32000] of integer;
procedure ip;
begin
assign(f,fi);
reset(f);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
close(f);
end;
procedure out;
begin
for i:=1 to n do
write(f,a[i],' ');
writeln(f);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
for i:=1 to n do write(f,a[i],' ');
close(f);
end;
begin
ip;
out;
end.
Lời giải:
Nhập mảng phải có nhập số lượng phần tử nữa bạn nhé.
program hotrotinhoc;
const fi='bai5.inp';
fo='bai5.out';
var f: text;
i,j,n,max,max1,max2,max3,max4: longint;
a: array[1..32000] of integer;
function dn(x: integer): integer;
var s: integer;
begin
s:=0; dn:=0;
while x<>0 do
begin
s:=s*10+(x mod 10);
x:=x div 10;
end;
dn:=s;
end;
function nt(x1: integer): boolean;
var j: integer;
begin
nt:=false;
if x1<2 then exit;
for j:=2 to trunc(sqrt(x1)) do
if x1 mod j=0 then exit;
nt:=true;
end;
function tongcs(x2: integer): integer;
var s1: integer;
begin
s1:=0;
while x2<>0 do
begin
s1:=s1+(x2 mod 10);
x2:=x2 div 10;
end;
tongcs:=s1;
end;
function ucln(x3,y: integer) : integer;
var z: integer;
begin
while y<>0 do
begin
z:=x3 mod y;
x3:=y;
y:=z;
end;
ucln:=x3;
end;
procedure ip;
begin
assign(f,fi);
reset(f);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
max:=0; max2:=0; max3:=0;
for i:=1 to n do
begin
if (dn(a[i])=a[i]) and (a[i]>max) then max:=a[i];
if dn(a[i])>max2 then max2:=dn(a[i]);
if (nt(a[i])) and (tongcs(a[i])>max3) then max3:=a[i];
end;
writeln(f,max);
for i:=1 to n do if dn(a[i])=max2 then
writeln(f,a[i]);
max4:=0;
for i:=1 to n do
for j:=i to n do
if (a[i]<>a[j]) and (ucln(a[i],a[j])>max4) then max4:=ucln(a[i],a[j]);
for i:=1 to n do
for j:=i to n do
if ucln(a[i],a[j])=max4 then writeln(f,a[i],' ',a[j]);
write(f,max3);
close(f);
end;
begin
ip;
out;
end.
Lời giải :
program hotrotinhoc;
var s: real;
i,n: integer;
begin
readln(n);
s:=0;
for i:=1 to n do
if n mod 2=1 then s:=s+i;
if n mod 2=0 then s:=(n+1)/2;
write(s:1:0);
readln
end.
Lời giải :
program hotrotinhoc;
var i,t,s : integer;
begin
i:=0; s:=0;
repeat
i:=i+1;
s:=s+i;
until i=10;
write(s);
readln
end.