Cho dãy A,B gồm n phần tử a1...an, b1...bn. Tạo mảng C sao cho : C[i] = A[i] + B[i]
Bài 1. Cho dãy số nguyên N và dãy a1, a2, a3, .., an (0<=N<=10^6; i=0,1,2,…,N – 1; |a(i)|<=10^6.Yêu cầu: Cho N và dãy a1, a2, a3, …, an; xóa phần tử x và xuất mảng sau khi xóa.
Bài 2. Cho dãy số nguyên N và dãy a1, a2, a3, …, an(0<=N<=10^6; i=0,1,2,…,N – 1; |a(i)|<=10^6.Yêu cầu: Cho N và dãy a1, a2, a3, …, an; xóa các phần tử trùng nhau chỉ giữ lại một phần tử và xuất mảng sau khi xóa.
Ai đó giúp mình 2 bài này theo pascal với được ko? Mình thật sự không biết làm :(( Ai đó giúp mình 2 bài này theo pascal với được ko? Mình xin cảm ơn nhiều!!
Bài 1:
uses crt;
var a:array[1..1000000]of longint;
i,n,x:longint;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
write('Nhap x='); readln(x);
for i:=1 to n do
if a[i]<>x then write(a[i]:4);
readln;
end.
Cho mảng A gồm n phần tử A1 đến An (n<250)
a) đếm xem trong mảng có bao nhiêu pt có giá trị chẵn
b) tính tổng các pt ở vị trí lẻ có giá trị chẵn
c) ktra xem mảng A có phải cấp số cộng không
uses crt;
var a:array[1..249] of integer;
i,n,dem,t,j,tam:integer;
kt:boolean;
begin
clrscr;
write('n='); readln(n);
if (n>0) and (n<250) then
begin
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
{---------------------------cau-a---------------------------}
dem:=0;
for i:=1 to n do
if a[i] mod 2=0 then inc(dem);
writeln('so phan tu trong mang co gia tri chan la: ',dem);
{--------------------------cau-b----------------------------}
t:=0;
for i:=1 to n do
if (i mod 2=1) and (a[i] mod 2=0) then t:=t+a[i];
writeln('tong cac phan tu o vi tri le co gia tri chan cua day la: ',t);
{--------------------------cau-c--------------------------------}
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
kt:=true;
t:=a[2]-a[1];
for i:=1 to n-1 do
if a[i+1]-a[i]<>t then kt:=false;
if kt=true then writeln('day A la cap so cong')
else writeln('day A khong la cap so cong');
end
else writeln('vui long nhap lai');
readln;
end.
Nhập vào mảng A gồm n số nguyên (n<=1000), hãy viết chương trình tạo ramảng B cũng gồm n phần tử, sao cho B[i] là tổng của i phần tử đầu tiên của A.
uses crt;
var a,b:array[1..1000]of integer;
i,n,j,t:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
for i:=1 to n do
begin
t:=0;
for j:=1 to i do
t:=t+a[j];
b[i]:=t;
end;
for i:=1 to n do
write(b[i]:4);
readln;
end.
Bài 1/ Viết chương trình nhập từ bàn phím hai dãy số nguyên A,B gồm n phần tử (n nhập từ bàn phím và n nhỏ hơn hoặc bằng 30). Trộn 2 dãy số trên thành dãy số mới C theo nguyên tắc sau:
a=a1,a2,a3,..,an.
b=b1,b2b,b3,...,bn.
c=a1,b1,a2,b2,a3,b3,...,an,bn.
Vd: n=6. A=4 5 6 1 2 3. B=9 4 7 0 8 4.
>> C=4 9 5 4 6 7 1 0 2 8 3 4 .
Bài 2/ Nhập vào 1 dãy số nguyên. Cho biết dãy đã sắp xếp chưa tăng dần hay giảm dần. Nếu dãy đã sắp xép hãy cho nhập số n bất kì và chèn vào dãy sao cho dãy vẫn đảm bảo được sắp xếp (không được sắp xếp sau khi chèn thêm). Nếu dãy chưa sắp xếp thì sắp xếp lại dãy tăng dần.
Vd: Dữ liệu vào: 5 6 7 8 9; n=6.
Dữ liệu ra: dãy đã được sắp xếp tăng dần và sau khi chèn thêm n là: 5 6 6 7 8 9.
" giúp e vs 19h 29/7 e nộp r "
Bài 1:
Uses crt;
var i,n,j:integer;
a,b,c:array[1..100000] of integer;
Begin
clrscr;
readln(n);
for i:= 1 to n do readln(a[i]);
for i:= 1 to n do readln(b[i]);
j:=0;
for i:= 1 to n do
Begin
inc(j);
c[j] := a[i];
inc(j);
c[j] := b[i];
end;
for i:= 1 to j do write(c[i],' ');
readln;
end.
Đề bài: viết chương trinh thực hiện: a) Nhập N nguyên dương b) Tạo mảng A và B gồm N phần tử, mỗi phần từ ngẫu nhiên nguyên đương <20
c) Tạo mảng C, mỗi phần tử của mảng Clå trị tuyệt đổi của hiệu hai phần tử A[i] – B[i]j tương ứng.
d) In 3 màng A, B, C ra mản hình.
#include <bits/stdc++.h>
using namespace std;
long long a[20],b[20],c[20],i,n;
int main()
{
cin>>n;
srand(time(NULL));
for (i=1; i<=n; i++)
a[i]=rand();
srand(time(NULL));
for (i=1; i<=n; i++)
b[i]=rand();
for (i=1; i<=n; i++)
c[i]=abs(a[i]-b[i]);
for (i=1; i<=n; i++) cout<<a[i]<<" "; cout<<endl;
for (i=1; i<=n; i++) cout<<b[i]<<" "; cout<<endl;
for (i=1; i<=n; i++) cout<<c[i]<<" "; cout<<endl;
return 0;
}
SWAP X
Bạn được cho hai dãy số nguyên dương aa và bb gồm nn phần tử mỗi mảng. Bạn được phép thực hiện thao tác này nhiều lần:
Chọn 1 số nguyên ii bất kỳ (1≤i≤n) và tráo đổi 2 phần tử a[i] và b[i].
Yêu cầu: Tìm giá trị nhỏ nhất có thể của max(a1,a2,...,an)⋅max(b1,b2,...,bn)sau khi bạn thực hiện thao tác trên 1 hoặc nhiều lần.
Dữ liệu:
Dòng đầu ghi t thể hiện số testcase, t≤100.
t block tiếp theo, mỗi block có dạng:
Dòng đầu ghi số nguyên dương n (n≤104).
Dòng thứ hai ghi nn số nguyên dương a1,a2,...,an (ai≤106)
Dòng thứ ba ghi nn số nguyên dương b1,b2,...,bn(bi≤106).
Kết quả:
Ứng với mỗi testcase, in ra kết quả cần tìm.
input
3
6
1 2 6 5 1 2
3 4 3 2 2 5
3
3 3 3
3 3 3
2
1 2
2 1
output
18
9
2
Ý tưởng: Tìm số lớn nhất trong hai dãy đã cho. Không mất tính tổng quát, giả sử số lớn nhất của 2 dãy nằm trong dãy a, ta xét các số trong dãy b, tại vị trí i: nếu a[i] < b[i] thì hoán vị a[i] và b[i]. Sau đó tìm số lớn nhất trong dãy b rồi nhân với số lớn nhất của hai dãy sẽ ra được kết quả.
#include <iostream>
using namespace std;
#define maxN 105
int main() {
int a[maxN], b[maxN];
int t;
cin >> t;
while (t--)
{
int n;
cin >> n;
int maxA = 0, maxB = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i]; maxA = max(a[i], maxA);
}
for (int i = 0; i < n; i++)
{
cin >> b[i]; maxB = max(b[i], maxB);
}
if (maxA < maxB)
swap(a, b);
int maxV = max(maxA, maxB);
for (int i = 0; i < n; i++)
if (b[i] > a[i])
swap(b[i], a[i]);
maxB = 0;
for (int i = 0; i < n; i++)
maxB = max(b[i], maxB);
cout << maxB * maxV << endl;
}
return 0;
}
Cho mảng A gồm N phần tử nguyên a1,a2,..,an. Với N < 103 nhập từ bàn phím. a. Hãy viết chương trình nhập mảng A. b. In ra màn hình tất cả các phần tử chẵn có trong mảng A. c. In ra màn hình tất cả các phần tử lẻ có trong mảng A.
Uses crt;
var i,n: longint;
a: array[1..103] of longint;
begin clrscr;
readln(n);
for i:=1 to n do read(a[i]); readln;
for i:=1 to n do if(a[i] mod 2=0) then write(a[i],' ');
for i:=1 to n do if(a[i] mod 2<>0) then write(a[i],' ');
readln;
end.
Viết chương trình nhập mảng A gồm N số nguyên dương A1, A2,... AN. (0<N<=100, 0<Ai<=3000, 1<=i<=100). E hãy tính tổng các phần tử mảng A
#include <bits/stdc++.h>
using namespace std;
long long x,i,n,t;
int main()
{
cin>>n;
t=0;
for (i=1; i<=n; i++)
{
cin>>x;
t=t+x;
}
cout<<t;
return 0;
}
a)
Input: Dãy n số nguyên
Output: Đếm xem trong dãy đó có bao nhiêu số nguyên dương
b)
Bước 1: Nhập n và nhập dãy số
Bước 2: dem←0; i←1;
Bước 3: Nếu a[i]>0 thì dem←dem+1;
Bước 4: i←i+1;
Bước 5: Nếu i<=n thì quay lại bước 3
Bước 6: Xuất dem
Bước 7: Kết thúc
Input: Số nguyên N và dãy a1,a2,...,aN
Output: Số số nguyên có trong dãy
Thuật toán:
- Bước 1: Nhập N và dãy a1,a2,...,aN
- Bước 2: d←0; i←1;
- Bước 3: Nếu i>N thì in ra có d số dương trong dãy và kết thúc
- Bước 4: Nếu ai > 0 thì d←d+1;
- Bước 5: i←i+1, quay lại bước 3