Int a, a1, a2, k, n, s; //описание переменных
printf("\nЛабораторная работа №4_2");
printf("\nВариант №0");
printf("\nПО-11-1");
printf("\nПупкин Василий\n");
printf("\nВвод исходных данных:\n");//ввод исходных данных
printf("\n a1=");
scanf("%d", &a1); //первый член последовательности
printf("\n a2=");
scanf("%d", &a2); //второй член последовательности
printf("\n n=");
scanf("%d", &n); //количество членов последовательности
printf("\n-----------------");
printf("\n k a s ");
printf("\n-----------------");
s = a1 + a2; //начальное значение суммы
// k - номер очередного члена последовательности
for (k=3; k<=n; k++)
{
a = a1 + a2; //очередное слагаемое
s += a; //очередная сумма
a1 = a2;
a2 = a;
printf("\n%3d %3d %3d", k, a, s);
}
printf("\n-----------------\n");
return 0;
}
3.3. На языке Java:
package javaapplication4_2;
// Импорт библиотеки графических компонентов Swing
import javax.swing.*;
import java.util.*;
public class JavaApplication4_2 // задание нового класса
{
// описание главного метода main этого класса
public static void main(String[] args)
{
//описание переменных:
Int a, a1, a2, n, s; // целого типа
String input, text; // строк класса String
//консольный вывод
System.out.println("Лабораторная работа №4-2");
System.out.println("Вариант №0");
System.out.println("ПО-11-1");
System.out.println("Пупкин Василий");
System.out.println();
// вызов диалогового окна ввода исходных данных
input=JOptionPane.showInputDialog("a1=");
// преобразование из строкового значения в целое
a1=Integer.parseInt(input);
input=JOptionPane.showInputDialog("a2=");
a2=Integer.parseInt(input);
input=JOptionPane.showInputDialog("n=");
n=Integer.parseInt(input);
// формирование строки вывода
text="Значения входных переменных:\na1=" + a1 + "\na2=" + a2 + "\nn=" + n;
// вызов диалогового окна эхо-печати
JOptionPane.showMessageDialog(null, text);
//консольный вывод
System.out.printf("a1=%d\na2=%d\nn=%d\n", a1, a2, n);
//консольный вывод
System.out.println("-----------------");
System.out.println(" k a s ");
System.out.print("-----------------");
// вычисление значений переменных по заданному алгоритму
s = a1 + a2; //начальное значение суммы
// k - номер очередного члена последовательности
for (int k=3; k<=n; k++)
{
a = a1 + a2; //очередное слагаемое
s += a; //очередная сумма
a1 = a2;
a2 = a;
//консольный вывод
System.out.printf("\n%3d %3d %3d", k, a, s);
}
//консольный вывод
System.out.println();
System.out.print("-----------------");
}
}
3.4. На языке PHP:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
Лабораторная работа №4_2
</title>
</head>
<body BgColor="silver" text="blue">
<H2>Лабораторная работа №4_2</h2>
<H3>Циклы с параметром</h3>
Вариант №0
<br>ПО-11-1
<br>Пупкин Василий
<br>
<br>
<Form name="LabRab_4_2" action="" method="POST">
Первый член последовательности a1:<br>
<input type="text" name="a1" size="5"><br>
Второй член последовательности a2:<br>
<input type="text" name="a2" size="5"><br>
Количество членов последовтельности n:<br>
<input type="text" name="n" size="5"><br>
<input type="submit" value="Вычислить"><br>
</form>
<?php
// получение значения переменной из формы
$n=$_POST['n'];
$a1=$_POST['a1'];
$a2=$_POST['a2'];
if (($n!='') && ($a1!='') && ($a2!=''))
{
//эхо-печать
echo "<br>n=$n";
echo "<br>a1=$a1";
echo "<br>a2=$a2<br>";
echo '<br>-------------------<br>';
echo '.k........a..........s';
echo '<br>-------------------<br>';
// вычисление переменных по заданному алгоритму
$s = $a1 + $a2; //начальное значение суммы
// $k - номер очередного члена последовательности
for ($k=3; $k<=$n; $k++)
{
$a = $a1 + $a2; //очередное слагаемое
$s += $a; //очередная сумма
$a1 = $a2;
$a2 = $a;
echo '<br>';
printf("%3d%'.10d%'.10d", $k, $a, $s);
}
echo '<br>-------------------<br>';
}
?>
</body>
</html>
- Компиляция, отладка, тестирование и получение результата:
Задания на лабораторную работу №4
Вариант 1
Задание 1
Задание 2
Задать ,
Вариант 2
Задание 1
Задание 2
Задать ,
Вариант 3
Задание 1
Задание 2
Задать ,
Вариант 4
Задание 1
Задание 2
Задать ,
Вариант 5
Задание 1
Задание 2
Задать
Вариант 6
Задание 1
Задание 2
Задать ,
Вариант 7
Задание 1
Задание 2
Задать ,
Вариант 8
Задание 1
Задание 2
Задать ,
Вариант 9
Задание 1
Задание 2
Задать ,
Вариант 10
Задание 1
Задание 2
Задать ,
Вариант 11
Задание 1
Задание 2
Алгоритм нахождения квадратного корня из положительного числа x
можно представить следующей рекуррентной последовательностью:
y0 = (x+1)/2
yi = (yi-1 + x/yi-1)
(формула Герона Александрийского).
При заданном x определить n-ое приближение его квадратного корня.
Вариант 12
Задание 1
Задание 2
Алгоритм нахождения квадратного корня из положительного числа x
можно представить следующей рекуррентной последовательностью:
y0 = x
yi = yi-1 + ( x/yi-1 – yi-1 )/2
При заданном x определить n-ое приближение его квадратного корня.
Вариант 13
Задание 1
Задание 2
Алгоритм нахождения корня k-ой степени из положительного числа x
можно представить следующей рекуррентной последовательностью:
y0 = x
yi = yi-1 + ( x/yk-1 i-1 – yi-1 )/k
При заданном x определить n-ое приближение его корня k-ой степени.
Вариант 14
Задание 1
Задание 2
Вывести рекуррентное соотношение для вычисления значения следующего выражения:
Вычислить значение этого выражения для заданного n.
Вариант 15
Задание 1
Задание 2
Вывести рекуррентное соотношение для вычисления значения следующего выражения:
Вычислить значение этого выражения для заданного n.
Вариант 16
Задание 1
f(x)=
Задание 2
Вывести рекуррентное соотношение для вычисления значения следующего выражения:
Вычислить значение этого выражения для заданного n.
Вариант 17
Задание 1
(-π<x<π)
f(x)=
Задание 2
Вывести рекуррентное соотношение для вычисления значения следующего выражения:
Вычислить значение этого выражения для заданного n.
Вариант 18
Задание 1
f(x)=
Задание 2
Вывести рекуррентное соотношение для вычисления значения следующего выражения:
Вычислить значение этого выражения для заданного n.
Вариант 19
Задание 1
f(x)=
Задание 2
Вывести рекуррентное соотношение для вычисления значения следующего выражения:
Вычислить значение этого выражения для заданного n.
Вариант 20
Задание 1
f(x)=
Задание 2
Вывести рекуррентное соотношение для вычисления значения следующего выражения:
Вычислить значение этого выражения для заданного n.
Лабораторная работа № 5
Строки
Тема: Программирование алгоритмов работы со строками.
Цель работы: Освоить основные алгоритмы работы со строками. Освоить методы тестирования программ.
Задание на лабораторную работу
- Получить задание в соответствии с номером своего варианта.
- Составить схему алгоритма решения задачи.
- Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
- Осуществить компиляцию, и отладку программы. Провести структурное тестирование программы (тестирование как белого ящика): составить тестовые наборы для тестирования
- в нормальных условиях,
- при граничных условиях,
- при некорректных входных данных,
- по критерию покрытия решений – результат проверки каждого условия принимал значение истина или ложь хотя бы один раз,
- по критерию покрытия условий – все возможные результаты каждой логической операции в условиях были получены хотя бы по одному разу.
- Получить результат.
- Оформить отчет по лабораторной работе.
Пример оформления работы
- Ввести с консоли строку символов. Определить количество цифр в этой строке и найти их сумму.
Начальные значения суммы summa и количества count сбрасываем на ноль. Определим длину введенной строки str, используя функцию Length(str). После этого будем рассматривать строку поэлементно: если очередной элемент - это цифра, то добавляем ее в сумму summa и увеличиваем количество цифр count на единицу. Для определения того, является ли очередной элемент строки цифрой, можно использовать операцию вхождения во множество цифр In [0..9] или коды элементов: код нуля – это 48, код единицы – это 49, и так далее. Найденные цифры, их количество и сумму вывести на экран.
2. Схема алгоритма решения задачи:
3. Код программы
3.1. На языке Паскаль:
Program Variant_0;
Uses WinCrt;
Var str: String;
s: String[1];
c: Char;
error: Integer;
i, k, n, summa, count: Word;
Begin
WriteLn('Лабораторная работа №5_1');
WriteLn('Вариант №0');
WriteLn('ИС-11-1');
WriteLn('Пупкин Василий');
WriteLn;
WriteLn('Введите строку символов:');
ReadLn(str);
WriteLn;
n:=Length(str); {определяем длину строки}
summa:=0; {начальные значения суммы и количества цифр - на ноль}
count:=0;
WriteLn('Найденные цифры:');
For i:=1 To n Do {просмотр строки - поиск цифр}
Begin
c:=str[i]; {очередной элемент строки - данное симв типа}
s:=str[i]; {в односимвольной строке s - очередной элемент}
If (c In ['0'..'9']) Then {если очередной элемент - цифра}
Begin
count:=count+1; {увеличиваем количество найденных цифр}
val(s,k,error); {преобразуем строку в число}
summa:=summa+k; {увеличиваем сумму на найденную цифру}
Write(k:3); {выводим найденную цифру на экран}
End; {If}
End; {For}
WriteLn;
WriteLn('summa=', summa);
WriteLn('count=', count);
End.
3.2. На языке Си:
#include <stdio.h> //директивы препроцессора
#include <conio.h>
#include <math.h>
#include <string.h>
Int main()
{