Составление программ на Delphi и на С
Способ задания текста в зависимости от используемого языка программирования. Натуральные числа с обозначением числа, месяца и года. Проверка корректности даты. Нахождение количества полных дней до конца года. Определить числа сотен в числе больше 100.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 23.07.2012 |
Размер файла | 17,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1. Дана квадратная матрица порядка п. Получить матрицу A2
В матричной алгебре принято обозначать матрицу какой-нибудь большой буквой латинского алфавита, а элемент матрицы - одноименной малой буквой с индексами. Матрицы и векторы считаются действительными.
Программа на Delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
StringGrid1: TStringGrid; // исходная матрица
Button1: TButton;
StringGrid2: TStringGrid; // результативная матрица
Button2: TButton;
procedure Button1Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
cnt: integer;
implementation
{$R *.dfm}
procedure TForm1. Button1Click (Sender: TObject);
begin
cnt:= StrToInt (Edit1. Text)+1;
StringGrid1. RowCount:= cnt;
StringGrid1. ColCount:= cnt;
StringGrid1. Options:= StringGrid1. Options + [goEditing];
end;
procedure TForm1. Button2Click (Sender: TObject);
var
i, j, k: integer; // Счётчики циклов
a, b, d: integer;
begin
// инициализация результативной матрицы
StringGrid2. ColCount:= cnt;
StringGrid2. RowCount:= cnt;
for i:=1 to cnt-1 do
for j:=1 to cnt-1 do
begin
a:=0; b:=0; d:=0;
for k:= 1 to cnt-1 do
begin
//a:=0; b:=0;
a:= strtoint (stringGrid1. Cells [i, k]);
b:= strtoint (stringGrid1. Cells [k, j]);
d:= d + a * b;
end;
StringGrid2. Cells [i, j]:= inttostr(d); // заполняем результативную матрицу
end;
StringGrid2. Options:= StringGrid2. Options + [goEditing];
end;
end.
Программа на С
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
# define n 4
int main()
{
srand (time(NULL));
int i, j, k, a[n] [n], b[n] [n], c[n] [n];
printf («Random matrix A\n»);
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
a[i] [j]=rand()%10;
printf («%3d», a[i] [j]);
}
printf («\n»);
}
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
c[i] [j]=0;
for (k=0; k<n; k++)
c[i] [j]+=(a[i] [k]*a[k] [j]);
}
}
printf («\nKvadratnaya matrica*\n»);
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
printf («%5d», c[i] [j]);
}
printf («\n»);
}
getchar();
return 0;
}
2. Дан текст; если в нем нет малых латинских букв, то оставить его без изменения, иначе каждый из символов, следующих за первой группой малых латинских букв, заменить точкой. Способ задания текста может выбираться в зависимости от используемого языка программирования и от того, какие сложности готов преодолевать решающий задачу. Текст может быть последовательностью символов (в частности - содержимым символьного файла), строкой, группой строк (в частности - содержимым текстового файла) и т.д.
Программа на Delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, Forms, StdCtrls, dialogs;
type
T_Form = class(TForm)
Button1: TButton;
GroupBox1: TGroupBox;
L_1: TLabel;
Edit1: TEdit;
Label1: TLabel;
procedure FormCreate (Sender: TObject);
procedure Button1Click (Sender: TObject);
private
public
end;
var
_Form: T_Form;
implementation
{$R *.dfm}
procedure T_Form. FormCreate (Sender: TObject);
begin
end;
function PrepareSlovo (s:string):string;
var i:integer; _b,_bb:boolean;
begin
result:='';
_bb:=false; _b:=false;
for i:=1 to length(s) do begin
if (_bb) and(_b) then
result:=result+'.'
else begin
if not (s[i] in ['a'..'z']) then begin
if _b then _bb:=true;
end;
if (s[i] in ['a'..'z']) then _b:=true;
if not(_bb) then result:=result+s[i] else result:=result+'.';
end;
end;
end;
procedure T_Form. Button1Click (Sender: TObject);
begin
label1. Caption:=PrepareSlovo (edit1. Text);
end;
end.
Программа на С
#include <stdio.h>
int main() {
char c, b = 0;
while ((c = getchar())!= '\n') {
if (c >= 'a' && c <= 'z') {
if (b < 2)
putchar(c);
if (! b)
b = 1;
} else if (! b)
putchar(c);
else {
if (b == 1)
b = 2;
putchar ('.');
}
}
}
3. Даны натуральные числа а, b, с, которые обозначают число, месяц и год:
а) Проверить корректность этой даты (например, 30 февраля 1900 года - некорректная дата).
б) Найти номер этого дня с начала - года.
в) Определить, сколько полных дней осталось до конца года.
При решении задачи принять во внимание, что в современном (григорианском) календаре каждый год, номер которого делится на 4, является високосным, за исключением тех номеров, которые делятся на 100 и не делятся на 400.
Программа на Delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure Button1Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
chislo, mes, dneivgodu, n, x, ost:integer;
proverka, b:real; dneivmes1, dneivmes2, dneivmes3, dneivmes4, dneivmes5, dneivmes6, dneivmes7, dneivmes8, dneivmes9, dneivmes10, dneivmes11, dneivmes12:integer;
VisGod:boolean;
god:1000..3000;
implementation
{$R *.dfm}
procedure TForm1. Button1Click (Sender: TObject);
begin
chislo:=strtoint (Edit1. Text);
mes:=strtoint (Edit2. Text);
god:=strtoint (Edit3. Text);
if god mod 4 = 0 then begin
if god mod 100 <> 0 then begin
if god mod 400 = 0 then
begin
dneivgodu:=366;
end
else begin
dneivgodu:=365;
end;
end;
end;
case mes of
1:n:=chislo; //январь
2:n:=31+chislo; //февраль
end;
if dneivgodu = 365 then
case mes of
3:n:=60+chislo; //март и т.д.
4:n:=91+chislo;
5:n:=121+chislo;
6:n:=152+chislo;
7:n:=182+chislo;
8:n:=213+chislo;
9:n:=244+chislo;
10:n:=274+chislo;
11:n:=305+chislo;
12:n:=335+chislo;
end;
Edit5. Text:=inttostr(n);
if dneivgodu <> 365 then // високосный
case mes of
3:n:=59+chislo;
4:n:=90+chislo;
5:n:=120+chislo;
6:n:=151+chislo;
7:n:=181+chislo;
8:n:=212+chislo;
9:n:=243+chislo;
10:n:=273+chislo;
11:n:=304+chislo;
12:n:=334+chislo;
end;
Edit5. Text:=inttostr(n);
case mes of
1:n:=chislo; //январь
2:n:=31+chislo; //февраль
end;
if dneivgodu = 365 then
case mes of
3:n:=60+chislo; //март и т.д.
4:n:=91+chislo;
5:n:=121+chislo;
6:n:=152+chislo;
7:n:=182+chislo;
8:n:=213+chislo;
9:n:=244+chislo;
10:n:=274+chislo;
11:n:=305+chislo;
12:n:=335+chislo;
end;
ost:=365-n;
Edit6.text:=inttostr(ost);
if dneivgodu <> 365 then // високосный
case mes of
3:n:=59+chislo;
4:n:=90+chislo;
5:n:=120+chislo;
6:n:=151+chislo;
7:n:=181+chislo;
8:n:=212+chislo;
9:n:=243+chislo;
10:n:=273+chislo;
11:n:=304+chislo;
12:n:=334+chislo;
end;
if n = 366 then
begin
ost:=0;
end;
Edit6.text:=inttostr(ost);
//proverka na korrektnost;
if mes = 1 then
begin
if chislo > 31 then
begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!');
end;
end;
if mes = 2 then begin
if chislo > 29 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!');
end;
end;
if mes = 3 then begin
if chislo > 31 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!'); end;
end;
if mes = 4 then begin
if chislo > 30 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!');
end;
end;
if mes = 5 then begin
if chislo > 31 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!');
end;
end;
if mes = 6 then begin
if chislo > 30 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!'); end;
end;
if mes = 7 then begin
if chislo > 31 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!');
end;
end;
if mes = 8 then begin
if chislo > 31 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!');
end;
end;
if mes = 9 then begin
if chislo > 30 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!');
end;
end;
if mes = 10 then begin
if chislo > 31 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!'); end;
end;
if mes = 11 then begin
if chislo > 30 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!');
end;
end;
if mes = 12 then begin
if chislo > 31 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!');
end;
end;
if mes > 12 then begin
Edit5. Text:='';
Edit6. Text:='';
showmessage ('Не корректная дата!!');
end;
end;
end.
Программа на С
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main (int argc, char *argv[])
{
int chislo, god, mes, dneivgodu, nn, n, ost, ost1, p;
puts («Введите число»);
printf(«==>»);
scanf («%d», &chislo);
puts («Введите месяц»);
printf(«==>»);
scanf («%d», &mes);
puts («Введите год»);
printf(«==>»);
scanf («%d», &god);
//printf («Введенная дата: Число=%d, месяц=%d, год=%d\n», chislo, mes, god);
if ((god% 4 == 0) && ((god% 100!= 0) || (god% 400 == 0))) {
dneivgodu = 366;
}
if (god % 4!= 0) {
dneivgodu = 365;}
//for (mes = 1; mes <= 12; mes++) {
switch (mes) {
case 1: n=chislo; break;
case 2: n=31+chislo; break;
if (dneivgodu!= 365) {
case 3: n=60+chislo; break;
case 4: n=91+chislo; break;
case 5: n=121+chislo; break;
case 6: n=152+chislo; break;
case 7: n=182+chislo; break;
case 8: n=213+chislo; break;
case 9: n=244+chislo; break;
case 10: n=274+chislo; break;
case 11: n=305+chislo; break;
case 12: n=335+chislo; break;
}
}
switch (mes) {
case 1: nn=chislo; break;
case 2: nn=31+chislo; break;
if (dneivgodu == 365) {
case 3: nn=59+chislo; break;
case 4: nn=90+chislo; break;
case 5: nn=120+chislo; break;
case 6: nn=151+chislo; break;
case 7: nn=181+chislo; break;
case 8: nn=212+chislo; break;
case 9: nn=243+chislo; break;
case 10: nn=273+chislo; break;
case 11: nn=304+chislo; break;
case 12: nn=334+chislo; break;
}
}
//proverka na korrektnost
// 1
if (mes == 1) {
if (chislo >31) {
puts («ne korrektnaya data!!»);
} p=1;}
// 2
if (mes == 2) {
if (dneivgodu == 365) {
if (chislo > 28) {
puts («ne korrektnaya data!!»);
} p=1;}
if (dneivgodu == 366) {
if (chislo > 29) {
puts («ne korrektnaya data!!»);
}} p=1;}
// 3
if (mes == 3) {
if (chislo > 31) {
puts («ne korrektnaya data!!»);
} p=1;}
// 4
if (mes == 4) {
if (chislo > 30) {
puts («ne korrektnaya data!!»);
} p=1;}
// 5
if (mes == 5) {
if (chislo > 31) {
puts («ne korrektnaya data!!»);
} p=1;}
// 6
if (mes == 6) {
if (chislo > 30) {
puts («ne korrektnaya data!!»);
} p=1;}
// 7
if (mes == 7) {
if (chislo > 31) {
puts («ne korrektnaya data!!»);
} p=1;}
// 8
if (mes == 8) {
if (chislo > 31) {
puts («ne korrektnaya data!!»);
} p=1;}
// 9
if (mes == 9) {
if (chislo > 30) {
puts («ne korrektnaya data!!»);
} p=1;}
// 10
if (mes == 10) {
if (chislo > 31) {
puts («ne korrektnaya data!!»);
} p=1;}
// 11
if (mes == 11) {
if (chislo > 30) {
puts («ne korrektnaya data!!»);
} p=1;}
// 12
if (mes == 12) {
if (chislo > 31) {
puts («ne korrektnaya data!!»);
} p=1;}
if (dneivgodu!= 365) {
printf («dnei s nachala goda=%d\n», n);
ost = 366 - n;
printf («ostalos dnei do konca goda=%d\n», ost);}
if (dneivgodu == 365) {
printf («dnei s nachala goda=%d\n», nn);
ost1 = 365 - nn;
printf («ostalos dnei do konca goda=%d\n», ost1);}
exit(0);
}
4. Дано натуральное число n>99. Определить число сотен в нем
программа текст дата год
Программа на Delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button2: TButton;
procedure Button1Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
n, b:integer;
implementation
{$R *.dfm}
procedure TForm1. Button1Click (Sender: TObject);
begin
n:=strtoint (Edit1.text);
if n < 99 then
begin
showmessage ('Введите n>99!');
Edit1. Text:='';
Edit2. Text:='';
end;
b:=n div 100;
Edit2. Text:=inttostr(b);
end;
procedure TForm1. Button2Click (Sender: TObject);
begin
Edit1. Text:='';
Edit2. Text:='';
end; end.
Программа на С
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main (int argc, char *argv[])
{
int n, chislo;
PUNKT1:
puts («Введите число n > 99»);
printf(«==>»);
scanf («%d», &n);
if (n < 99) {
printf («Введите n > 99!!!\n»);
goto PUNKT1;
}
chislo=n / 100;
printf («chislo soten =%d\n», chislo);
exit(0);
}
5. Даны два действительных числа а и b. Получить их сумму, разность и произведение
Программа на Delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button2: TButton;
procedure Button1Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
a, b, c, d, e:integer;
implementation
{$R *.dfm}
procedure TForm1. Button1Click (Sender: TObject);
begin
a:=strtoint (Edit1. Text);
b:=strtoint (Edit2. Text);
c:=a+b;
d:=a-b;
e:=a*b;
Edit3. Text:=inttostr(c);
Edit4. Text:=inttostr(d);
Edit5. Text:=inttostr(e);
end;
procedure TForm1. Button2Click (Sender: TObject);
begin
Edit1. Text:='';
Edit2. Text:='';
Edit3. Text:='';
Edit4. Text:='';
Edit5. Text:='';
end;
end.
Программа на С
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main (int argc, char *argv[])
{
int a, b, summa, raznost, proizvedenie;
puts («Введите число А»);
printf(«==>»);
scanf («%d», &a);
puts («Введите число B»);
printf(«==>»);
scanf («%d», &b);
printf («Введенные числа: a=%d, b=%d\n», a, b);
summa=a+b;
printf («summa=%d\n», summa);
raznost=a-b;
printf («raznost=%d\n», raznost);
proizvedenie=a*b;
printf («proizvedenie=%d\n», proizvedenie);
getchar();
exit(0);
}
В данной работе использовались такие языки, как Delphi, Pascal, C.
Размещено на Allbest.ru
Подобные документы
Решение задач с помощью языка программирования Delphi: вычисление значения функции Y от X; систем двух уравнений; прогрессий; последовательностей; вычисление числа с определенной точностью; перевод числа из десятичной в восьмеричную систему счисления.
отчет по практике [83,8 K], добавлен 08.06.2010Задания по основам программирования: написание программы, выводящей на экран приветствие автору; рассчитывающей параметры геометрической фигуры; по номеру года определяющей, является ли он високосным; находящей наименьший делитель введенного числа, и др.
контрольная работа [2,1 M], добавлен 09.02.2016Теоретические основы объектно-ориентированного языка программирования Delphi, изучение среды визуального проектирования приложений. Определение 40-го числа Фибоначчи, составление листинга и блок-схемы программы, тестирование ее на работоспособность.
курсовая работа [261,1 K], добавлен 25.03.2015Изучение общей структуры языка программирования Delphi: главные и дополнительные составные части среды программирования. Синтаксис и семантика языка программирования Delphi: алфавит языка, элементарные конструкции, переменные, константы и операторы.
курсовая работа [738,1 K], добавлен 17.05.2010Правила перевода данного числа из десятичной системы счисления в двоично-десятичную. Особенности шифрования текста с использованием таблицы ASCII-кодов. Прямой, обратный и дополнительный код числа как его восьмибитовое целое без знака и со знаком.
методичка [217,9 K], добавлен 15.12.2009Общая характеристика интерфейса языка программирования Delphi. Рассмотрение окна редактора кода, конструктора формы, инспектора объектов и расширения файлов. Ознакомление с основными этапами создания и сохранения простого приложения; проверка его работы.
презентация [184,3 K], добавлен 18.03.2014Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Запись прямого и обратного кода для числа 10010 и -10010. Получение дополнительного кода числа для 16-разрядной ячейки. Перевод в двоичную систему счисления десятичных чисел: 10, 45, 7, 33. Запись в обратном и дополнительном кодах числа -67, -43, -89.
практическая работа [13,7 K], добавлен 19.04.2011Рассмотрение теории и технологии работы со средой программирования Delphi. Описание Описание интерфейса программы, структуры данных, генерации точек. Разработка задания по выявлению всех квадратов, которые могут быть образованы точками на плоскости.
реферат [21,0 K], добавлен 13.01.2015Способы сортировки задач программирования: пузырьком, пузырьковая с просеиванием, метод последовательного поиска минимумов, вставками. Распределяющая сортировка - RadixSort-цифровая - поразрядная. Теория чисел. Простые числа. Задача "Красивые числа".
реферат [90,5 K], добавлен 14.05.2008